iOS适配总结
【iOS适配总结】学习链接:
- 关于iOS横竖屏适配
注意:在添加约束之前一定要添加到view上否则会报错。
[testView mas_makeConstraints:^(MASConstraintMaker *make) {make.leading.equalTo(view1.mas_trailing).offset(10);
make.bottom.equalTo(view2.mas_bottom).offset(-2);
make.height.mas_equalTo(70);
make.width.mas_equalTo(50);
}];
mas_remakeConstraints mas_remakeConstraints 会清除之前的所有约束,仅保留最新的约束。
如下:会清除原来的以view1和view2为参照的约束,保留以view3和view4为参照的约束
[testView mas_remakeConstraints :^(MASConstraintMaker *make) {make.bottom.equalTo(view3.mas_top).offset(-10);
make.centerX.equalTo(view4.mas_centerX);
make.height.mas_equalTo(70);
make.width.mas_equalTo(50);
}];
mas_updateConstraints mas_updateConstraints 针对上面的情况 会更新block中出现的约束,不会导致出现两个相同的约束的情况。
注意: 同一个对象 使用mas_updateConstraints 一定要保证 block中要更新的元素是其使用mas_makeConstraints 设置的约束。
如下就是正确的 则不会出现约束冲突问题[testView mas_updateConstraints:^(MASConstraintMaker *make) {make.bottom.equalTo(view1.mas_top).offset(-60);
必须是 同一参照对象(都是以view1)同一参照属性(都是以view1的mas_top)}];
但是下面的就不对了,就会出现约束冲突在iOS7及其以下会出现由于约束冲突出现的崩溃。[testView mas_updateConstraints:^(MASConstraintMaker *make) {make.bottom.equalTo(view2.mas_top).offset(-10);
make.centerX.equalTo(view4.mas_centerX);
}];
原因1:不同一参照对象 (原来是view1 现在是view2)。原因2 testView在mas_makeConstraints中没有设置center所以无法更新。解决办法:使用mas_remakeConstraints清除原来的约束重新设置约束;
推荐阅读
- 7.9号工作总结~司硕
- 2020-04-07vue中Axios的封装和API接口的管理
- iOS中的Block
- 最有效的时间管理工具(赢效率手册和总结笔记)
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 数据库总结语句
- 周总结|周总结 感悟
- 周总结43
- 2019-08-29|2019-08-29 iOS13适配那点事
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)