当UISearchDisplayController处于活动状态时,搜索栏上方的额外空间

时间:2013-09-22 15:07:52

标签: ios uisearchbar uipopovercontroller ios7 uisearchdisplaycontroller

我有一个带有UITableViewController的popover作为内容视图控制器。表视图的标题视图为UISearchBar

现在,在iOS 6上,当UISearchDisplayController变为活动状态时,一切都很好看。但是,在iOS 7上,搜索栏上方会有一个额外的空间。

The extra space above the search bar on iOS 7

那么如何摆脱iOS 7搜索栏上方的这个额外空间呢?

1 个答案:

答案 0 :(得分:25)

解决方法是将edgesForExtendedLayout的属性UITableViewController设置为UIRectEdgeNone

- (void)viewDidLoad {
    [super viewDidLoad];

    if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) { /// iOS 7 or above
        self.edgesForExtendedLayout = UIRectEdgeNone;
    }
}

此属性的值为UIRectEdgeAll by default。这意味着视图的所有边都将被扩展,以便为状态栏保留额外的空间(搜索栏上方空间的高度恰好为20px,与状态栏的高度相同)。