tableview标题中的UISearchController搜索栏会留下状态栏大小的差距

时间:2016-05-12 22:24:49

标签: ios objective-c uitableview

我正在使用带有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;

enter image description here enter image description here Here is the layout of the view:

4 个答案:

答案 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:-

Autoresizing for UITableView

UISearchBar Autoresize:-

UISearchBarController autoresize

  

注意:: - 一旦禁用自动布局和尺寸类,您就可以在尺寸检查器中看到上述内容。

答案 2 :(得分:0)

enter image description here

取消选中“调整滚动视图插图”

答案 3 :(得分:0)

我通过更改" top"来修复它。保存段控制器的视图的自动布局锚点,超级视图"到"顶部布局指南"。这将间隙移动到状态栏的位置,并将整个视图的背景颜色更改为与导航栏无缝的蓝色相同的颜色。