IOS7中UINavigationBar下的UIView

3
我们正在处理IOS6和IOS7之间的过渡,并且目前有以下问题还没有解决:
我们的视图结构如下:
1. UIView 2. 用于特定按钮(列表筛选按钮)的UIToolbar 3. UISearchBar覆盖在UIToolbar上,将搜索组件与列表整合在一起 4. UITableView
在之前的IOS SDK版本中完美运行。
但在IOS7中,我们遇到了以下问题:
1. UIToolbar和UISearch bar不再可见 2. 我们集成了UIRefreshBar组件,在刷新UITableView后,它总是移动到UINavigationBar下面
有什么建议吗?

讨论的应用程序/操作系统受到保密协议的限制。您应该在devforums.apple.com上提出这个问题。 - Sabareesh
3个回答

15
  1. viewDidLoad中,以下代码对我有效:

    [self setEdgesForExtendedLayout:UIRectEdgeNone];

  2. 如果你喜欢使用Storyboard,请选择viewController并确保未选中Extended Edges> Under top bars

enter image description here


更新: 对于像我一样无法安装仅适用于Mountain Lion的Xcode 5的人:

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

13

关于
1.UIToolbarUISearchBar不再可见,请在viewDidLoad中编写以下代码,您的问题将得到解决。

viewDidLoad中添加以下代码即可解决问题。
[self setEdgesForExtendedLayout:UIExtendedEdgeLeft | 
                                UIExtendedEdgeBottom | 
                                UIExtendedEdgeRight];

6
实际上,这行代码很好:[self setEdgesForExtendedLayout:UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight]; - Medhi
在Interface Builder中,如果您单击UIViewController,则会在名称“Extend Edges”下看到一组复选框,其行为完全相同。 - Leonardo

2

关于第二点,我们整合了UIRefreshBar组件之后,UITableView总是在刷新后移动到UINavigationBar下面。

将NavigationBar设置为不透明,因为默认情况下它是半透明的,这会导致视图滚动到它的下面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接