- 等比例 :
如果给出一个 button,不要写死button 的宽高,否则不同设备显示会有偏差,所以,我们可以用等比例算出button的宽高
dividedBy() 算短边
multipliedBy()算长边
例子 宽高 3/1 ,可用 make.height.equalTo(view.mas_width).dividedBy(3) 算出 高度
代码:宽高比例 7:1 ,宽(左右约束) 高(通过比例计算)
image.png
- 排列N个控件
如果你想排列 N个控件,不需要算出每个控件高度
/**
- distribute with fixed spacing
- @param axisType 横排还是竖排
- @param fixedSpacing 两个控件间隔
- @param leadSpacing 第一个控件与边缘的间隔
- @param tailSpacing 最后一个控件与边缘的间隔
*/
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;
/**
- distribute with fixed item size
- @param axisType 横排还是竖排
- @param fixedItemLength 控件的宽或高
- @param leadSpacing 第一个控件与边缘的间隔
- @param tailSpacing 最后一个控件与边缘的间隔
*/
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;
例:
image.png
如果 横向排列 设置高,反之你懂得
效果:
image.png
获取 VIew 的真实 数据frame:
方法 1. [self.view layoutIfNeeded];
方法 2.[view systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height);
自动根据bar 高度设置的引导属性值,举个例子:
存在navigationBar 时,mas_topLayoutGuideBottom 相当于 增加了44。
不存在navigationBar 时,mas_topLayoutGuideBottom 相对于 0 。
mas_topLayoutGuide;// navgationBar 相关,
mas_topLayoutGuideTop;
mas_topLayoutGuideBottom;
mas_bottomLayoutGuide;// tabbar toolbar 相关
mas_bottomLayoutGuideTop;
mas_bottomLayoutGuideBottom;