如何在 ios 中以编程方式添加约束
Posted
技术标签:
【中文标题】如何在 ios 中以编程方式添加约束【英文标题】:How to add constraints programmatically in ios 【发布时间】:2015-07-08 06:32:04 【问题描述】:我在 ios 中以编程方式创建了我的 UI 元素。在所有 iphone 中一切都很好,但我的按钮被拉长了。
btnLogin=[[UIButton alloc] initWithFrame:CGRectMake(80, h-90, w-160, 40)];
这就是我创建按钮的方式。我知道在界面生成器中我们可以使用自动布局。但是如何以编程方式向此按钮添加约束?
因为现在按钮宽度会根据屏幕大小而变化,尽管左右两侧边缘是固定的。如何避免元素根据设备进行处理,并且我想管理按钮和父视图边框之间左右两侧之间的相同间隙。
我该怎么做?请帮我 谢谢
【问题讨论】:
【参考方案1】:这就是你想要的
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];
截图 苹果手机 6
iPhone 6p
更新:
H:|-80-[button]-80-|,这会在水平方向创建约束,按钮左右到superview保持为80
"V:[button(40)]-90-|",这在Vertical处创建约束,按钮高度保持为40,底部到superview底部保持为90
【讨论】:
谢谢,你能解释一下这是什么@"H:|-80-[button]-80-|"和@"V:[button(40)]-90-|"以上是关于如何在 ios 中以编程方式添加约束的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ios swift 中以编程方式创建自动布局等宽约束?
如何在ios swift中以编程方式创建自动布局等宽度约束?