如何在ios中以编程方式添加约束

如何在ios中以编程方式添加约束,ios,uibutton,autolayout,constraints,Ios,Uibutton,Autolayout,Constraints,我在ios中以编程方式创建UI元素。所有的iphone手机都很好,但我的按钮都绷紧了 btnLogin=[[UIButton alloc]initWithFrame:CGRectMake(80,h-90,w-160,40)] 我就是这样做的。我知道在interface builder中我们可以使用自动布局。但是,如何以编程方式向该按钮添加约束 因为现在按钮的宽度根据屏幕大小而变化,尽管左右边缘是固定的。如何根据设备避免元素拉伸,以及如何管理按钮和父视图边框之间的左侧和右侧之间的相同间隙 我该怎么

我在ios中以编程方式创建UI元素。所有的iphone手机都很好,但我的按钮都绷紧了

btnLogin=[[UIButton alloc]initWithFrame:CGRectMake(80,h-90,w-160,40)]
我就是这样做的。我知道在interface builder中我们可以使用自动布局。但是,如何以编程方式向该按钮添加约束

因为现在按钮的宽度根据屏幕大小而变化,尽管左右边缘是固定的。如何根据设备避免元素拉伸,以及如何管理按钮和父视图边框之间的左侧和右侧之间的相同间隙

我该怎么做?请帮帮我 谢谢这是你想要的

 UIButton * button = [[UIButton alloc] init];
button.backgroundColor = [UIColor redColor];
[self.view addSubview:button];

NSDictionary * buttonDic = NSDictionaryOfVariableBindings(button);
button.translatesAutoresizingMaskIntoConstraints = NO;

NSArray * hConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-80-[button]-80-|"
                                                                 options:0
                                                                 metrics:nil
                                                                    views:buttonDic];
[self.view addConstraints:hConstraints];

NSArray * vConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[button(40)]-90-|"
                                                                 options:0
                                                                 metrics:nil
                                                                   views:buttonDic];
[self.view addConstraints:vConstraints];
截图 iphone6

iphone6p

更新:

H:|-80-[button]-80-|,这将在水平方向创建约束,按钮的左右方向将superview保持为80


“V:[按钮(40)]-90-|”,这会在垂直方向上创建约束,按钮高度保持在40,底部到superview底部保持在90

谢谢,你能解释一下这是什么吗@“H:|-80-[按钮]-80-|”和@“V:[按钮(40)]-90-|”