簡體   English   中英

UISearchBar的UITextField中的占位符文本未對齊

[英]Placeholder text misaligned in UITextField of UISearchBar

我正在嘗試通過外觀代理自定義UISearchBar的字體。 它可以工作,但是以某種方式,占位符文本不會垂直居中。 我試圖設置垂直對齊方式屬性; 占位符文本將居中,但輸入的文本將稍稍低於中心線...有什么辦法可以解決此問題?

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

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

占位符文本

普通文字

每當我遇到這種情況時,通常是由於對UIAppearance的一些修改UIAppearance無法與UISearchBar很好地融合。 查看您以前可能做出的任何駭客,並嘗試一次將它們注釋掉。

在我的特殊情況下,它實際上是對text屬性中的NSForegroundColor的修改,因此這種未對齊可能與字體更改無關。

您需要在searchBar內設置textField的對齊方式。 從UISearch欄的子視圖獲取textField並將其對齊方式設置為居中。請嘗試下面的示例代碼。

- (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的出口。

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

}

嘗試一次此代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM