当`translatesAutoresizingMaskIntoConstraints`设置为'NO`时,视图消失

时间:2013-10-28 05:38:41

标签: ios autolayout

问题

使用了某些第三方库。某些观看次数在translatesAutoresizingMaskIntoConstraints设置为NO后会消失。

在我自己的代码中,我的观点没有其他autoresizingMask设置;在库中,代码的autoresizingMask部分也已被删除。而是为这些视图设置显式边界/中心/帧。没有nib文件,视图都是以编程方式创建的。

我知道其他一些人通过提供彻底的自动布局约束来解决类似的问题,但在我的情况下,我的意思是关闭自动布局并手动执行。不知道何时打开自动布局。

有些人说“默认情况下,当您的应用启动时,自动布局会关闭,系统会像iOS 5及之前一样运行。但是,如果在您的应用运行的任何时候,系统会看到自动布局约束(在代码中生成或通过加载已经选中“使用自动布局”的笔尖,自动布局系统已打开,从那时起,您将在自动布局下运行。“ (由Matt Neuberg编写的iOS 6编程,第383-384页),但在我的项目中,我认为没有任何自动布局限制。

代码很笨重,但如果需要,会上传一些骨架。

感谢您的提示!

1 个答案:

答案 0 :(得分:2)

如果您不想使用自动布局,则必须将translatesAutoresizingMaskIntoConstraints设置为YES。这是a reference

  

这是通过财产   translatesAutoresizingMaskIntoConstraints。当此属性为YES时,   默认情况下,视图的自动调整掩码被翻译   陷入困境。例如,如果视图配置如图所示   6-1和translatesAutoresizingMaskIntoConstraints是YES,然后是   约束| -20- [按钮] -20- |和V:| -20- [按钮(20)]添加到   视图的超级视图。实际效果是,无意识的视图表现为   他们在10.7之前的OS X版本中做过。

     

对于了解自动布局的视图,在大多数情况下,您   希望translatesAutoresizingMaskIntoConstraints为NO。这是   因为翻译自动调整掩码产生的约束   已足以完全指定给定视图的框架   它的超级视图框架,通常太多了。例如,这个   将阻止按钮自动呈现其最佳宽度   当它的标题改变时。