【原】对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属性是否设置合理了。