iOS 7上的autolayout问题

时间:2014-11-25 18:02:46

标签: ios storyboard interface-builder autolayout

我在我的应用程序中同时支持iOS 7和iOS 8,并使用带有autolayout的storyboard来设置我的视图。我只遇到了iOS 7的问题。

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

关于如何在iOS 7上运行这些工作的任何建议?

1 个答案:

答案 0 :(得分:0)

目前我正在使用黑客技术在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,我将它的常量调整到导航栏的高度。如果有人有更好的方法,请告诉我。