我在我的应用程序中同时支持iOS 7和iOS 8,并使用带有autolayout的storyboard来设置我的视图。我只遇到了iOS 7的问题。
我有一个子视图,它有一个约束,将顶部空间设置为顶部布局指南的底部。这可以确保子视图不会位于顶部的半透明导航栏下方。它在iOS 8上工作正常,但在iOS 7上,子视图位于状态栏正下方的导航栏下方。
关于如何在iOS 7上运行这些工作的任何建议?
答案 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,我将它的常量调整到导航栏的高度。如果有人有更好的方法,请告诉我。