- (void)viewDidLoad { [super viewDidLoad]; // 左上角 // 固定左边和上边,伸缩右边和下边 self.leftTop.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; // 左下角 // 固定左边和下边,伸缩右边和上边 self.leftBottom.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; // 右上角 // 固定右边和上边,伸缩左边和下边 self.rightTop.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; // 右下角 // 固定右边和下边,伸缩左边和上边 self.rightBottom.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; }
关于ios的控件的AutoresizingMask属性 个人测试的一些结果 setAutoresizingMask控件的自适应 UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutoresizingFlexibleWidth = 1 << 1, UIViewAutoresizingFlexibleRightMargin = 1 << 2, UIViewAutoresizingFlexibleTopMargin = 1 << 3, UIViewAutoresizingFlexibleHeight = 1 << 4, UIViewAutoresizingFlexibleBottomMargin = 1 << 5 UIViewAutoresizingNone UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 40)]; [label setAutoresizingMask: UIViewAutoresizingNone]; 控件相对于俯视图坐标值不变 CGRectMake(50, 100, 200, 40) UIViewAutoresizingFlexibleWidth:控件的宽度随着父视图的宽度按比例改变 例如 label宽度为 100 屏幕的宽度为320 当屏幕宽度为480时 label宽度 变为 100*480/320 同理 UIViewAutoresizingFlexibleHeight相同 UIViewAutoresizingFlexibleLeftMargin 到屏幕左边的距离随着父视图的宽度按比例改变 例如 CGRectMake(50, 100, 200, 40)]; 50 屏幕的宽度为320 当屏幕宽度为480时 label宽度 变为 50*480/320 控件变为 CGRectMake(75, 100, 200, 40)]; UIViewAutoresizingFlexibleRightMargin UIViewAutoresizingFlexibleTopMargin UIViewAutoresizingFlexibleBottomMargin