【问题标题】:Issue with autolayout on iOS 7iOS 7 上的自动布局问题
【发布时间】:2015-01-23 20:44:30
【问题描述】:

我在我的应用程序中同时支持 iOS 7 和 iOS 8,并使用带有自动布局的情节提要来设置我的视图。我只遇到了 iOS 7 的问题。

我有一个子视图,它有一个约束,将其顶部空间设置为顶部布局指南的底部。这确保子视图不会位于顶部半透明导航栏的下方。它在 iOS 8 上运行良好,但在 iOS 7 上,子视图位于状态栏正下方的导航栏下方。

关于如何在 iOS 7 上也能实现此功能的任何建议?

【问题讨论】:

  • 你能告诉我们限制条件吗?
  • 何时/何地视图只是该视图下方的一个视图。
  • 顶部布局指南在 iOS 7 和 8 中的行为应该相同,对吧?
  • 尝试取消选中“限制到边距”

标签: ios storyboard interface-builder autolayout


【解决方案1】:

目前我正在使用 hack 让它在 iOS 7 上运行,如下所示:

override func viewDidLayoutSubviews() {
        if NSProcessInfo.instancesRespondToSelector(Selector("isOperatingSystemAtLeastVersion:")) {
            // iOS 7 navBar hack
        } else {     
            let navBarHeight = self.navigationController?.navigationBar.intrinsicContentSize().height
            self.navHeightConstraint.constant = navBarHeight!
            self.view.layoutSubviews()
        }
}

基本上我通过Interface Builder连接了约束,如果是iOS 7,我将其调整为导航栏的高度。如果有人有更好的方法,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    相关资源
    最近更新 更多