例如:我在 storyboard
场景中设置了一个从 UIButton
底部到 superview 底部的垂直空间约束,常数为 20。当在 iOS 8 设备中运行时,显示正确,但在 iOS 7 设备中运行时,看起来这个常数变高并且按钮显示在屏幕上方......我不明白为什么会这样,因为autolayout
应该从 iOS 7 开始可用。
有什么帮助吗?我不知道该如何处理。
提前致谢
最佳答案
布局边距是 iOS 8 中的一项新功能。 Layout Margin 是 iOS 8 的 UIView 中可用的新属性。因此,任何继承自 UIView 的对象都将具有此属性。如果您正在为 iOS 7 和 iOS 8 开发应用程序,则不应使用布局边距(或以巧妙的方式使用布局边距)。
因此,如果您有任何与布局边距相关的限制,并且在 iOS 7 设备上启动应用程序之前没有进行适当的检查,则应用程序可能会崩溃或对象的排列可能会出现问题。
每当您尝试从 XCode 6 中的 Storyboard添加新约束时,默认情况下会勾选“Constrain to Margins”。这个选择的意思是用iOS 8中的新属性添加约束。
如果您的应用程序的部署目标是 iOS 7 及更高版本并且您的任何约束具有此布局边距,XCode 将提示并警告“Layout attributes relative to the layout margin on iOS prior to 8.0”。
如果您正在为 iOS 7 和 8 开发应用程序,最好“取消勾选”Constrain to Margins。
关于ios - 为什么自动布局在 iOS 7 和 iOS 8 中表现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31247689/