自动调整不适用于iOS11 / XCode 9

时间:2017-09-18 14:31:14

标签: autolayout ios-autolayout ios11 autoresizingmask xcode9

在使用XCode 9构建iOS11时,Autoresizing视图似乎不再可靠。

几个视图的布局最终会在XIB中定位控件,但是没有进行适当的调整。这在iOS10中运行良好,适用于在iOS11中运行的旧应用程序。但是,重建应用程序的定位和大小调整失败。

是否有更改会影响autoresizingmask的使用?

有没有办法自动从AutoResizing转换为AutoLayout and Constraints

修改 造成问题的控件是UINavigationBarUIToolBar

2 个答案:

答案 0 :(得分:2)

我今天正在研究同一个问题:在某些情况下,有一件事情是换成类似(但不完全相同)的掩码值。例如,我们的一个视图不能与UIViewAutoresizingFlexibleHeight一起使用,但它适用于UIViewAutoresizingFlexibleBottomMargin。

我不知道升级到AutoLayout的自动方式 - 我实际上在其他项目中使用AutoLayout很多,而且概念基础是完全不同的......

如果我发现更好的话,我会编辑这个答案。

答案 1 :(得分:2)

这里的问题相同。正如@John Nimis所说,有时候玩面具似乎解决了这个问题。例如,当我们同时拥有顶部和底部蒙版(UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)时,我们成功删除了顶部蒙版。

修改 我不知道这是否是一个明确的解决方案,但我注意到问题发生在我的框架上有一个固定的原点(x或y)。例如:

view.frame =(view1.frame.origin.x,150,width,height);

更改相对值中的固定值(例如相对于另一个view1)解决了掩码的问题:

view.frame =(view1.frame.origin.x,view1.frame.origin.y + view1.frame.size.height + 20,width,height);