2013-04-11 9 views
14

外観のプロキシを使用してUISearchBarのフォントをカスタマイズしようとしています。それは動作しますが、何とかして、プレースホルダーのテキストが垂直にセンタリングされません。私は垂直方向の配置プロパティを設定しようとしました。プレースホルダーのテキストは中央に置かれますが、入力されたテキストはセンターラインの少し下になります...これを修正する方法はありますか?プレースホルダーのテキストがUISearchBarのUITextFieldで整列しない

編集:コード私は、カスタムフォントを追加するために使用:

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

placeholder text

normal text

+0

どのようにプレースホルダを設定していますか? – Kasaname

+0

は、外観とプレースホルダーの設定に使用しているコードを表示します –

+0

http://stackoverflow.com/questions/5526047/uisearchbar-display-bug-text-to-far-left-overlapping-the- magnifying-glass- ico – iPatel

答えて

0

あなたが検索バー内のテキストフィールドの配置を設定する必要があります。 UISearchバーのサブビューからtextFieldを取得し、単純にその配置をcenterに設定します。以下のサンプルコードを試してください。

- (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

これは私に起こるたびに、通常UISearchBarとよく混合されないUIAppearanceへの変更によって引き起こされます。あなたが作ったかもしれない以前のハックを見て、一度に1つずつコメントアウトしてみてください。

具体的には、実際にはNSForegroundColorのテキスト属性が変更されているため、この位置ずれはフォントの変更とは無関係かもしれません。

関連する問題