【发布时间】:2014-10-01 15:09:29
【问题描述】:
我有一个包含 UITableView 的 UIViewController 类。在表视图标题中,我有一个 UIToolbar,其中包含一个 UISearchBar。在 iOS8 中,当我点击搜索栏进行搜索时,搜索显示控制器按预期将栏动画到屏幕顶部,但搜索栏左侧没有边距。
最精简的重现代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, 0.0, [self tableView].frame.size.width, 44.0)];
if ([toolbar respondsToSelector:@selector(setBarTintColor:)]) {
[toolbar setBarTintColor:[UIColor lightGrayColor]];
}
[[self tableView] setTableHeaderView:toolbar];
UIView *searchBarView = [[UIView alloc] initWithFrame:[[[self searchDisplayController] searchBar] frame]];
[[[self searchDisplayController] searchBar] setBackgroundImage:[[UIImage alloc] init]];
[searchBarView addSubview:[[self searchDisplayController] searchBar]];
[[[self searchDisplayController] searchBar] setText:@""];
UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc] initWithCustomView:searchBarView];
[toolbar setItems:@[searchBarItem]];
}
非常感谢任何帮助/建议。
编辑:这在 iOS 6.1 和 7.0/1 上正常工作
【问题讨论】:
标签: uitableview ios8 uisearchbar uitoolbar