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.UIToolbar
和UISearchBar
不可见了,在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