【发布时间】:2017-09-15 14:10:49
【问题描述】:
我使用 UISearchController 作为导航栏的一部分,使用 iOS 11 中引入的新 API。我在 ViewController 的 viewDidLoad 中以下列方式使用它
- (void)viewDidLoad {
[super viewDidLoad];
[_table setDataSource:self];
[_table setDelegate:self];
searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
[self.navigationItem setSearchController:searchController];
[self.navigationItem setHidesSearchBarWhenScrolling:NO];
[searchController.searchBar setBackgroundColor:[UIColor greenColor]];
}
但是,搜索文本字段在搜索栏中的错误位置呈现。看下面的截图。
我检查了视图层次结构,发现搜索栏中的 UISearchBarTextField 对象(开发人员无法直接访问)的 frame.y 值为 1,这可能是导致此问题的原因。我已经在 iOS 11 beta 10 和 iOS 11 GM 上对此进行了测试。
这是一个已知问题吗?有什么解决办法吗?还是我做错了什么?
任何帮助将不胜感激(:
【问题讨论】:
-
嗨,请在下面查看我的答案。希望对您有所帮助!
标签: ios objective-c uinavigationitem uisearchcontroller ios11