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

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

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

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

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

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

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

有什么建议吗?

【问题讨论】:

  • 正在讨论的应用程序/操作系统在保密协议下。你应该在 devforums.apple.com 上问这个问题。

标签: uitableview ios7 uirefreshcontrol


【解决方案1】:
  1. viewDidLoad 这对我有用

    [self setEdgesForExtendedLayout:UIRectEdgeNone];

  2. 如果您喜欢故事板,请选择 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 不透明,默认情况下它允许视图在其下方滚动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多