NSLayoutConstraint使用

NSLayoutConstraint类是用来约束元素位置、大小的类别,可以用来适配不同屏幕和手机横屏竖屏,使界面元素在这些不同屏幕上显示的相对位置统一。

NSLayoutConstraint有两个构造函数

+(instancetype)constraintWithItem:(id) attribute:(NSLayoutAttribute) relatedBy:(NSLayoutRelation) toItem:(id) attribute:(NSLayoutAttribute) multiplier:(CGFloat) constant:(CGFloat)

+(NSArray)constraintsWithVisualFormat:(NSString*) options:(NSLayoutFormatOptions) metrics:(NSDictionary*) views:(NSDictionary)

第一种构造函数主要用来约束一个元素,第二个构造函数用于约束多个元素
NSLayoutAttribute 是一个枚举类型,一般常用的属性:
NSLayoutAttributeLeft:元素的左边界
NSLayoutAttibuteRight:元素右边界
NSLayoutAttributeTop:元素的上边界
NSLayoutAttributeBottom:元素的下边界
NSLayoutAttributeCenterX:元素中心点的x坐标
NSLayoutAttributeCenterY:元素中心点的y坐标

NSLayoutRelation也是一个枚举类型,只有3种情况
NSLayoutRelationLessThanOrEqual:被设置元素的属性小于或等于目标属性的值
NSLayoutRelationEqual:被设置元素的属性等于目标元素的属性值
NSLaoutRelationGreaterOrEqual:被设置元素额属性大于或等于目标属性的值

第二种构造函数中,views的Dictionary由NSDictionary的一个宏NSDictionaryOfVariableBinding来设置,其设置结果就是key等于元素名字

NSDictionaryOfVariableBinding(view1,view2);
//等效于下面的函数
[NSDictionary dictionaryWithObjectsAndKeys:view1,@"view1",view2,@"view2"];

第二种构造函数中的NSString参数结构为:
1.@”H:|-(left)-[aView(float)]-(right)-|” 设置元素aView的水平参数,包括元素宽度float,左边距left和右边距right,其中左右可以省略,但是中间那个元素宽度不行
2.@”V:|-(t)-[aView(f)]-(b)-|”设置元素aView的垂直参数,包括元素高度f,上边距距t和下边界b,其中上下可以省略,但是中间那个元素高度不行

应用举例:
1.不管横屏,竖屏元素始终居中
2.元素相当于父元素的上、左、下、右的距离
3.bView相对aVIew的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值