当“translatesAutoresizingMaskIntoConstraints”设置为“NO”时,视图消失
问题
使用了一些第三方库。 一些视图在其translatesAutoresizingMaskIntoConstraints
设置为NO
后消失。
在我自己的代码中没有其他autoresizingMask
设置我的意见; 在库中,代码的autoresizingMask
部分也被删除了。 而是为这些视图设置显式边界/中心/框架。 没有nib文件,视图都是以编程方式创build的。
我知道一些其他人通过给出一个彻底的自动布局约束集解决类似的问题,但在我的情况下,我的意思是closures自动布局,并手动执行。 不知道何时自动布局打开。
有些人说:“默认情况下,当你的应用程序启动时,自动布局被closures,系统的行为与之前的iOS5一样。但是,如果在你的应用程序运行的任何时候,系统都会看到一个自动布局约束或者通过加载一个具有“使用自动布局”的笔尖来选中),自动布局系统将被打开,然后您将在自动布局下运行。 (Matt Neuberg编写的iOS 6,第383-384页),但在我的项目中,我不认为还有任何自动布局限制。
代码是庞大的,但如果有必要将上传一些骨架。
谢谢你的提示!
如果您不想使用自动布局,则必须将translatesAutoresizingMaskIntoConstraints
设置为YES
。 这里有一个参考 :
这通过属性translatesAutoresizingMaskIntoConstraints工作。 当此属性为YES时,默认情况下,视图的自动识别掩码被转换为约束。 例如,如果一个视图的configuration如图6-1所示,并且translationAutoresizingMaskIntoConstraints为YES,那么约束| -20- [button] -20- | 和V:| – 20- [button(20)]添加到视图的超级视图。 最终结果是,不知情的视图像在10.7之前的OS X版本中那样行事。
对于意识到“自动布局”的视图,在大多数情况下,您需要将“TransAutoresizingMaskIntoConstraints”转换为“否”。 这是因为通过翻译自动调整掩码生成的约束已经足够完整地指定一个视图的框架给予其超级视图的框架,这通常是太多了。 例如,当标题改变时,这将防止button自动采取最佳宽度。