我正在使用带有tableView的UIViewController。我已经设置了一个搜索控制器,并将搜索栏嵌入到tableview标题中。当我搜索它时,在tableview和它上面的uiview之间留下状态栏大小的间隙。我意识到关于这个问题还有很多其他问题,但没有一个问题解决了这个问题。
以下是设置搜索栏的代码:
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.hidesNavigationBarDuringPresentation = YES;
self.searchController.searchBar.delegate = self;
self.searchController.searchBar.backgroundImage = [UIImage new];
self.searchController.searchBar.backgroundColor = kBlueNavBarColor;
self.searchController.searchBar.tintColor = [UIColor whiteColor];
self.tableView.tableHeaderView = self.searchController.searchBar;
self.definesPresentationContext = YES;
答案 0 :(得分:0)
在以UIViewController
模式显示时,我遇到了类似的问题。导航栏太远了。我调整了导航栏的大小,使其更宽一些。如果这有帮助,请告诉我。此问题始于iOS 7.您可能不需要检查版本。
float currentVersion = 7.0;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= currentVersion) {
// iOS 7
self.navBar.frame = CGRectMake(self.navBar.frame.origin.x, self.navBar.frame.origin.y, self.navBar.frame.size.width, 64);
}
答案 1 :(得分:0)
禁用大小类并定义自定义自动调整大小。请参阅以下图片: -
UITableView Autoresize:-
UISearchBar Autoresize:-
注意:: - 一旦禁用自动布局和尺寸类,您就可以在尺寸检查器中看到上述内容。
答案 2 :(得分:0)
答案 3 :(得分:0)
我通过更改" top"来修复它。保存段控制器的视图的自动布局锚点,超级视图"到"顶部布局指南"。这将间隙移动到状态栏的位置,并将整个视图的背景颜色更改为与导航栏无缝的蓝色相同的颜色。