2013-04-11 102 views
14

我試圖通過外觀代理自定義UISearchBar的字體。它的工作原理,但不知何故,佔位符文本不是垂直居中。我試圖設置垂直對齊屬性;佔位符文本將居中,但輸入的文本將略低於中心線......有什麼方法可以解決這個問題嗎?UISearchBar UITextField中的佔位符文本未對齊

編輯:代碼我用來添加自定義字體:

[[UITextField appearanceWhenContainedIn: [UISearchBar class], nil] 
           setFont: [UIFont customFontWithSize: 17]]; 

placeholder text

normal text

+0

你是如何設置佔位符??? – Kasaname 2013-04-11 03:48:11

+0

顯示您用來設置外觀和佔位符的代碼 – 2013-04-11 03:49:30

+0

http://stackoverflow.com/questions/5526047/uisearchbar-display-bug-text-too-far-left-overlapping-the-magnifying-glass- ico – iPatel 2013-04-11 04:04:08

回答

0

您需要設置搜索欄裏面文本框對齊。 從UISearch欄的子視圖中獲取textField,並簡單地將其對齊設置爲center.Try下面的示例代碼。

- (void)viewDidLoad 
{ 
    for (UITextField *txt in _searchbar.subviews) { 
     if ([txt isKindOfClass:[UITextField class]]) { 
      [txt setTextAlignment:NSTextAlignmentCenter]; 
     } 
    } 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

這裏_searchbar是UISearchBar的出口。

0
- (void)viewDidLoad 
{ 

    for (UITextField *txt in search.subviews) { 
     if ([txt isKindOfClass:[UITextField class]]) { 
      txt.font = [UIFont fontWithName:@"Arial-BoldMT" size:17]; 
      txt.contentVerticalAlignment = UIControlContentVerticalAlignmentFill; 
     } 
    } 

    [super viewDidLoad]; 

} 

試試這段代碼一次。

1

每當發生這種情況時,通常是由於UIAppearanceUISearchBar沒有很好地混合而引起的一些修改。看看你以前可能做過的任何黑客攻擊,或者嘗試一次對它們進行評論。

在我的具體情況下,它實際上是對文本屬性NSForegroundColor的修改,所以此錯位可能與您的字體更改無關。