首先我们要利用NSLayoutConstraint类创建具体的约束对象
添加约束的对象到具体的view中
-(void)addConstraint:(NSLayoutConstraint *)constraint;代码实现autolayout的注意地方
-(void)addConstraints:(NSArray *)constraints;
1、要禁用autoresizing功能设置view的translatesAutoresizingMaskIntoConstraints这个属性为NO
2、添加约束之前,一定要保证相关的控件都在各自的父控件上了.也就是说addSubview这些都已经设置好了
3、不用给view再设置frame了。
比如我们要约束view的高度首先创建个约束对象,这个的意思就是给self.view添加约束高度为50.计算就是50*1.0,第二个attribute参数如果我们不需要设置就要设置NSLayoutAttributeNotAnAttribute
NSLayoutConstraint * ViewH=[NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual添加约束到控件中
toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:50];
[self.view addConstraint:ViewH];如果是相对于父控件的约束就要添加到父控件中,如果我们想要让一个视图在状态栏的底部开始加个10的间距就要在toItem中用self.topLayoutGuide后面的一个参数设置为从底部开始。如果想从状态栏上面开始就用self.view和从顶部开始。
自动布局的一个核心公式
obj1.property1=(obj2.property2 * multiplier )+constant