您的位置:首页 > 移动开发 > IOS开发

拾遗系列(三)屏幕适配:Autolayout

2016-06-07 21:43 295 查看
autoresizing:子控件根据父控件变化而变化,父控件与子控件之间建立联系。

autolayout:任何两个控件之间都可建立联系。(参照、约束)

目前两者是对立的,用autolayout需要关闭autoresizing。目前Xcode默认是autolayout模式。

UILabel自动布局,只要有位置结束及宽度固定,系统会自动更新高度。此时uilabel边框会自动包住文字。

layoutIfNeed:在代码中对约束进行修改时,可以此方法写在animate动画中。

masonry

添加约束:

mas_makeConstraints:只会添加新的约束

mas_remakeConstraints:删除以前所有约束,增加新约束

mas_updateConstraints:将会覆盖以前某些特定约束

尺寸约束:make.size.mas_equalTo(100); === make.size.equalTo(@100); //后者100 需要包装。区分mas_EqualTo equalTo

位置约束:make.center.mas_equalTo

make . [做什么约束] . [关系:哪个控件] . [系数] . [偏移量]

约束类型:

* 1.尺寸:width、height、size

* 2.边界:left(leading)、right(trailing)、top、bottom

* 3.中心点:center、centerX、centerY

* 4.边界:edges

#define MAS_SHORTHAND //添加这个宏,代码中可省略mas_前缀。
#define MAS_SHORTHAND_GLOBALS //添加这个宏,mas_equalTo   等价于 equalTo
所有代码都不需要增加:mas_
此宏定义必须写在Masonry.h 之前


约束优先级

此功能可用于两个约束冲突时



C距离B底部为10,若此时B隐藏了,需要让C距离A底部为10。这种情形下需要用到约束优先级。

给C添加个新的约束,距离C底部为10,并且设置此约束优先级低于C距离B底部的优先级。

- 当B隐藏时,需要调换两个优先级。

- 将B删除(不建议)

- 将B隐藏,且设置高度0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  布局 ios