IOS7上UINavigationBar下的UIView

Posted

技术标签:

【中文标题】IOS7上UINavigationBar下的UIView【英文标题】:UIView under UINavigationBar on IOS7 【发布时间】:2013-07-19 11:59:16 【问题描述】:

我们正在处理 ios6 和 IOS7 之间的过渡,并有下一个问题,暂时没有解决方案:

我们视图的结构是下一个:

    UIView 即席按钮的 UIToolbar(列表的过滤按钮) UIToolbar 上方的 UISearchBar 将搜索组件与列表集成 UITableView

在以前版本的 IOS SDK 上完美运行。

但是在 IOS7 中我们遇到了下一个麻烦:

    UIToolbar 和 UISearch 栏不再可见 我们集成了 UIRefreshBar 组件,刷新后 UITableView 总是移动到 UINavigationBar 下

有什么建议吗?

【问题讨论】:

正在讨论的应用程序/操作系统在保密协议下。你应该在 devforums.apple.com 上问这个问题。 【参考方案1】:

    viewDidLoad 这对我有用

    [self setEdgesForExtendedLayout:UIRectEdgeNone];

    如果您喜欢故事板,请选择 viewController 并确保未选择 Extended Edges >> Under top bars


更新: 对于像我这样无法安装仅在 Mountain Lion 中可用的 Xcode 5 的人:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
    [self setEdgesForExtendedLayout:UIRectEdgeNone];
#endif

【讨论】:

我遇到了同样的问题,这对我有用。非常感谢 +1【参考方案2】:

关于 1.UIToolbarUISearchBar不可见了,在viewDidLoad写下下面的代码,你的问题就解决了。

[self setEdgesForExtendedLayout:UIExtendedEdgeLeft | 
                                UIExtendedEdgeBottom | 
                                UIExtendedEdgeRight];

【讨论】:

其实这行很好:[self setEdgesForExtendedLayout:UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight]; 在 Interface Builder 中,如果您单击 UIViewController,则会有一组名为“Extend Edges”的复选框的行为完全相同。【参考方案3】:

关于 2.我们集成了UIRefreshBar组件,刷新后UITableView总是移动到UINavigationBar下面

使 NavigationBar 不透明,默认情况下它允许视图在其下方滚动。

【讨论】:

以上是关于IOS7上UINavigationBar下的UIView的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS7 中设置 UINavigationBar? [复制]

iOS7 UINavigationBar tintColor 在设置时更改为最大 .8

iOS7:UINavigationBar 与状态栏合并

iOS 7.1 UINavigationbar 和 UIToolbar

IOS7 中的 UINavigationBar/状态栏问题

iOS7如何绘制透明的UIToolbar或UINavigationBar