【原】对UIView的autoresizemark属性的新理解,感觉蛮重要的

以前都觉得UIView的autoresizemask属性总是那么死板,如果每次对每个view都“|”上那一大串就行。这是个万金油,保证我们写程序一定不会出错。

self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
        | UIViewAutoresizingFlexibleBottomMargin |UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin
        | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

但是,某一天我嫌它太臃肿,删掉了一些,发现程序出了比较大的错误。苦思冥想都没想出为什么,后来在师傅指导下才恍然大悟。我的APP需要锁屏,只允许横屏。

IOS模拟器有个比较变态的特性,那就是在viewDidLoad时,不论你模拟器的方向是什么方向,它都默认一开始是home指向你的方向。所以,width跟height也是竖屏

的数值。如果我们没有对其中的view进行autoresizemask的width以及height进行设置,若你的设备转向了,这些view的width、height都是按照竖屏的标准来划定的。

要格外小心,出现异常的时候记得去查查你的view的autoresizingmask属性是否设置合理了。

原文地址:https://www.cnblogs.com/wengzilin/p/2494623.html