2012-07-12 114 views
5

我有一個UITextfield與一些佔位符文本。佔位符文本和輸入文本不對齊UITextField

我已經使用了兩個對齊屬性。然而,參與者的文本仍然有點偏高。誰能幫我嗎 ?

謝謝。

+0

你可以發佈你正在使用的實際代碼? – Nosrettap 2012-07-12 23:09:08

+0

@Nosrettap:使用IB創建。 – Ahsan 2012-07-13 19:54:38

+0

我仍然有這個問題。你有沒有找到解決辦法? :/ – 2013-03-28 15:14:31

回答

0

根據UITextField文檔,您應該使用textAlignment屬性。由於文檔狀態「此屬性適用於主文本字符串和佔位符字符串,此屬性的默認值爲UITextAlignmentLeft。」

所以,你的代碼看起來是這樣的:

textfield.textAlignment = UITextAlignmentLeft 

或取決於你想如何使你可以在=符號後使用UITextAlignmentCenterUITextAlignmentRight文本。

+0

嗯,這沒有幫助。它就像是在文本中鍵入對齊或佔位符文本對齊(中心垂直對齊)。不知道爲什麼這兩個文本都沒有正確對齊 – Ahsan 2012-07-13 19:54:06

0

我會說你玩的Y大小使用CGRectMake來創建你的框架。也許讓它更小?

3
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 
1

這是我在MonoTouch中解決佔位符與文本對齊問題的解決方案。正如我在評論中指出的那樣 - 有三個不同的部分:編輯,靜態文本和靜態佔位符。 Objective-C中的等效項爲drawTextInRect:drawPlaceholderInRect:

我的解決方案是子類化和偏移錯位項目。不幸的是,這個問題似乎與字體文件本身以及編輯模式如何影響它有關,與iOS渲染靜態文本的方式有關。

希望這可以幫助別人。

佳佳

public class MyTextField : UITextField 
{ 
    public MyTextField(RectangleF rect) : base(rect) 
    { 
    } 

    public override void DrawPlaceholder(RectangleF rect) 
    { 
     base.DrawPlaceholder(new RectangleF(rect.X, rect.Y + 2, rect.Width, rect.Height)); 
    } 

    public override void DrawText(RectangleF rect) 
    { 
     base.DrawText(new RectangleF(rect.X, rect.Y + 2, rect.Width, rect.Height)); 
    } 
}