ios-代码实现autolayout

时间:2021-07-10 05:26:41

首先我们要利用NSLayoutConstraint类创建具体的约束对象

添加约束的对象到具体的view中

-(void)addConstraint:(NSLayoutConstraint *)constraint;
-(void)addConstraints:(NSArray *)constraints;
代码实现autolayout的注意地方

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