UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
typedef NSUInteger UIViewAutoresizing;
就这么几个属性,如果在xib或者stroyboard中,配置的话,有个动画在指使效果.还算比较清楚,用代码写的话其实稍微弄清楚每个值代表的意义也就清楚了.
none当然就是不变化了.
leftmargin是指,视图的左边缘,在父视图中的距离是可以调整的.,不设置的话就代表所谓的坐标X,不变.
rightmargin就是右边缘到父视图右边的距离是可以调整的.
UIViewAutoresizingFlexibleWidth:代表整个视图的宽度是可以改变的.
最常用的,视图始终填充整个父视图,只需要UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight就行了.
像按钮之类的控件,通常就不要拉伸本身的大小,就使用margin来设置,靠左,靠右,靠上,靠下.
以前的程序都很偷懒,不想做旋转,其实大部分还是比较简单的通过这个属性就能完成.复杂的就用通过以下两个办法来调整具体的坐标了:
1.
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
这个在viewcontroller中重新,当视图旋转的时候会调用.然后手工设置子视图的坐标.
2.
- (void)layoutSubviews
这个就要在view中实现这个方法来,手动调整子视图的布局.由于通常我们使用viewcontroller.view,这个view并没有写出来.要操作,就需要自己实现一个view来干这事.