整理各種控件的位置設(shè)置及約束方法
屏幕尺寸
屏幕尺寸(以分辨率的像素為單位,后部分的分辨率為尺寸二倍)
- @1x
iPhone & iPod Touch第一代、第二代、第三代 320×480 px
- @2x
iPhone4 - 4S 640×960 px(320×480 @2x,下面直接寫)
iPhone5 - 5C - 5S 320×568
iPhone6 - 6S 375×667
- @3x
iPhone 6Plus - 6S Plus 414x736(開發(fā)應(yīng)按照1242x2208適配)
設(shè)置center及size
center和size的設(shè)置先后順序影響最終布局結(jié)果。
如果先設(shè)置center,由于其尺寸為(0,0),則其origin和center值一致,再設(shè)置尺寸相當于設(shè)置了一遍frame,而不是按控件的中心位置計算坐標位置。反之則正常,按照控件中心進行定位。
可利用該特性進行分步設(shè)置frame。
設(shè)置尺寸
CGRect frame = redView.frame;
frame.size = CGSizeMake(150, 150);
redView.frame = frame;
設(shè)置center
CGPoint center = redView.center;
center.x = self.view.frame.size.width / 2;
center.y = self.view.frame.size.height / 2;
redView.center = center;
參考來源:ios 通過設(shè)置UI控件的center和size來設(shè)置位置時需注意!
Masonry常用布局方式
make.size.mas_equalTo(CGSizeMake(100, 48));
make.top.equalTo(headerView).with.offset(20);
make.centerX.equalTo(headerView);
make.height.mas_equalTo(48);
make.bottom.equalTo(locationView.mas_top).with.offset(-5);
XIB設(shè)置控件圓角或者圓形方式
在XIB的User Defined Runtime Attributes
屬性中添加以下兩個Key Path
:
//當cornerRadius的值為正方形控件二分之一時,
layer.cornerRadius-number-數(shù)值
layer.masksToBounds-bool-YES