【问题标题】:Extra space above search bar when UISearchDisplayController is activeUISearchDisplayController 处于活动状态时搜索栏上方的额外空间
【发布时间】:2013-09-22 15:07:52
【问题描述】:

我有一个带有 UITableViewController 的弹出框作为内容视图控制器。表格视图有一个UISearchBar 作为它的标题视图。

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

那么我怎样才能摆脱 iOS 7 搜索栏上方的这个额外空间呢?

【问题讨论】:

    标签: ios uisearchbar uipopovercontroller ios7 uisearchdisplaycontroller


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!顺便说一句,我删除了 if 条件,因为它警告说没有实现这样的选择器并且它工作正常。
    • 在 Interface Builder 中,您可以简单地在“Extend Edges”部分禁用控制器属性 Under Top Bars
    猜你喜欢
    • 1970-01-01
    • 2016-03-17
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多