在UIView中有一个autoresizingMask属性,它对应的是一个枚举的值,属性的意思就是自动调整子控件与父控件中间的位置,宽高。
enum{
UIViewAutoresizingFlexibleBottomMargin
UIViewAutoresizingFlexibleHeight
UIViewAutoresizingFlexibleLeftMargin
UIViewAutoresizingFlexibleRightMargin
UIViewAutoresizingFlexibleTopMargin
UIViewAutoresizingFlexibleWidth
UIViewAutoresizingNone
};
typedef NSUInteger UIViewAutoresizing;
分别解释以上意思。
UIViewAutoresizingNone
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 40)];
[label setAutoresizingMask: UIViewAutoresizingNone]; 控件相对于父视图坐标值不变
CGRectMake(50, 100, 200, 40)
UIViewAutoresizingFlexibleHeight
控件的高度将和父视图的高度一起成比例变化。
UIViewAutoresizingFlexibleWidth 控件的宽度随着父视图的宽度按比例改变
label宽度为 100 屏幕的宽度为320 当屏幕宽度为480时 label宽度 变为 100*480/320
UIViewAutoresizingFlexibleLeftMargin 到屏幕左边的距离随着父视图的宽度按比例改变
例如
CGRectMake(50, 100, 200, 40)];
50 屏幕的宽度为320 当屏幕宽度为480时 label宽度 变为 50*480/320
控件变为
CGRectMake(75, 100, 200, 40)];
UIViewAutoresizingFlexibleRightMargin
这个常量如果被设置,视图的右边界将随着父视图宽度的变化而按比例进行调整。否则,视图和其父视图的右边界的相对位置将保持不变。
UIViewAutoresizingFlexibleBottomMargin
这个常量如果被设置,视图的底边界将随着父视图高度的变化而按比例进行调整。否则,视图和其父视图的底边界的相对位置将保持不变。
UIViewAutoresizingFlexibleTopMargin
这个常量如果被设置,视图的上边界将随着父视图高度的变化而按比例进行调整。否则,视图和其父视图的上边界的相对位置将保持不变