iOS约束NSLayoutConstraint
NSLayoutConstraint的几个属性;
使用:
WithItem:要约束的对象
attribute:约束的类型(约束对象的什么位置)
relatedBy:与对象的关系
toItem:参考对像
attribute:这个参数是要告诉要约束的对象把你放到参考对象的什么位置
multiplier:距离的倍数
constant:约束的距离
[NSLayoutConstraintconstraintWithItem:_myView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:10],
要实现自动布局,必须把该属性设置为no
self.translatesAutoresizingMaskIntoConstraints=NO;//
类型不同对应的位置数据正负不同
Top Left是正数对应在参考对象下部和右边也就是在里面
RightBottom是正数对应在参考对象下部和右边也就是外面,是负数就向反方向
[NSLayoutConstraint constraintWithItem:note
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:views
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:-10]];
介绍NSLayoutConstraint的使用
WithItem:这个一般是会填写被约束的对象
attribute:是规定约束对象的那个部位
relatedBy:参考者与约束对象的关系
toItem:参考者
attribute:参考对象的位置与约束对象是相同的
multiplier:计数的倍数
constant:这就是约束的计数(下面对它做一个系统的介绍)
刚开始使用的时候可能不太容易上手,它没有像storyboard那样有视图画看着直观。废话不多说下面就来具体使用和理解
首先我要确定的是那个做约束对象的参考对象,确定好了就可以开始做约束了
上部是代码,下部是效果。这里的黄色是一个参考对象(也是我们代码中的views这个对象),红色部分是一个约束对象(note这个对象)。
代码理解,要约束的是note,约束的类型是头部,设置他们是对立关系,约束的参考对象views,我要将约束对象的头部约束到参考对象的那个部位,设置约束倍数,设置约束的计数。
我的代码中设置的attribute:这个参数是相同可能对理解不是太大,那我下面改动一下做一个详解。通过对上面代码理解那么我要将note约束到views的下部是不是就改动《约束对象的头部约束到参考对象什么部位,也就是第二个attribute:》那就改动一下
结果是对的,说明理解是没有问题
观察细致的人可能会疑惑为什么下面为什么会出现一个-10计数?那我就把-10该为10会出现什么效果了
Top Left是正数对应在参考对象下部和右边也就是在里面
ightBottom是正数对应在参考对象下部和右边也就是外面,是负数就向反方向
网友评论