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

Hej*_*azi 9 uisearchbar uisearchdisplaycontroller uipopovercontroller ios ios7

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

现在,在iOS 6上,当UISearchDisplayController活跃时,一切看起来都很好.但是,在iOS 7上,搜索栏上方会有一个额外的空间.

iOS 7上搜索栏上方的额外空间

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

Hej*_*azi 26

解决的办法是设置属性edgesForExtendedLayout的的UITableViewControllerUIRectEdgeNone.

- (void)viewDidLoad {
    [super viewDidLoad];

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

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