我正在使用iOS 8.我的笔尖启用了自动布局和大小类.我在IB中制作了两个布局,一个用于任意宽度/任何高度,一个用于任何宽度/紧凑高度.我在IB中测试了不同的方向和设备尺寸,我在IB中没有约束问题.
现在,当我在手机上运行应用程序时.视图在纵向中正确布局.然后我将手机旋转到风景中,我得到了"无法同时满足约束条件".错误.当我查看冲突约束列表时,我看到应该为横向布局卸载的约束.旋转完成后,横向布局将正确显示.
就像iOS在卸载旧约束之前尝试使用新边界布局视图一样.这是iOS的已知问题吗?我需要实现一个步骤来正确支持大小类吗?
我遇到了同样的问题.很沮丧!首先,我将代码添加到willTransitionToTraitCollection:withTransitionCoordinator:以检测newCollection是否是不需要约束的大小类.如果是这样,那么我设置constraint.active = NO.
它做了伎俩,但我讨厌代码.我就像是,"我为什么要这样做?没有为新的大小类安装约束!"
然后我想通了如果我在界面构建器中将违规约束的优先级降低到999,我在旋转时不再在控制台中出现约束错误.:-)所有人都对世界是对的.
我仍然认为这是一个 iOS bug,但我没有时间制作一个示例项目来重现它。我认为这种布局的不寻常之处在于,当手机旋转为横向时,我的图像视图会移动到完全不同的位置。
图像视图的宽度约束对于任一尺寸类别都有不同的常量,但这会引发异常。
接下来尝试的是使用不同的宽度约束。一个是为了紧凑的高度而安装的,另一个是为了其他用途而安装的。即使不应该安装破坏约束,这仍然会引发异常。
最后,我找到的解决方案是有两个图像视图,一个用于常规布局,一个用于紧凑高度。一次仅安装一个图像视图。这毫无例外地工作并且看起来完全相同。
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |