ios自动布局如何代码添加约束

在ios上面除了用SB添加约束外我用代码如何这样写布局

用系统方法或者Masonry图片说明图片说明

一般是根据当前屏幕宽度,以及你希望的间隔大小,算出每个方框的大小
然后代码中设置宽度约束等。

cgfloat bianJu = 10;
cgflaot btnWidth = ([UIApplication sharedApplication].keyWindow.bounds.size.width - 2*bianJu - 10)/3
for (int i = 0; i < 3;i++){
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(10/2 + i*btnWidth, [self.view center].y -btnWidth/2 ,btnWidth, btnWidth)];
}
主要是取当前屏幕的中心点y - btn 的高度的一半

//需要布局的控件
UIButton *leftBtn = [[UIButton alloc]init];
UIButton *rightBtn = [[UIButton alloc]init];
//添加到哪个父视图中?两个控件所在父视图不同不能尽行约束
[self.view addSubview:leftBtn];
[self.view addSubview:rightBtn];
//开始布局
//第一个参数是需要添加约束的控件,第二个参数是需要在哪里添加约束NSLayoutAttributeTop表示控件的顶部,第三个参数是NSLayoutRelationEqual表示相等,第四个参数是添加约束的控件的对应的约束对象,这里就是self.view或者leftBtn.superview都可以,第五个参数NSLayoutAttributeTop表示父视图的顶部,第六个参数是倍数,第七个参数是约束的大小
NSLayoutConstraint *topConstraint = [NSLayoutConstraint constraintWithItem:leftBtn attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:leftBtn.superview attribute:NSLayoutAttributeTop multiplier:1.0 constant:50];
//设定完约束后需要添加到对应的控件上,但约束设计到两个控件以上的需要把约束加到该全部设计到的控件的父视图中
[self.view addConstraint:topConstraint];
//上面只是以一个位置上的约束演示,还有左边,下边,右边的约束如上相类同