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

时间:2015-07-08 06:32:05

标签: ios uibutton autolayout constraints

我在ios中以编程方式创建了我的UI元素。所有iphone的所有东西都很好,但我的按钮变得拉伸。

up' ActiveRecord::StatementInvalid: SQLite3::SQLException: no such function: now: UPDATE members SET created_at = now() WHERE created_at is NULL /home/siva/Siva/Clone/gitlabhq/db/migrate/20141121133009_add_timestamps_to_members.rb:8:in 这就是我创建按钮的方式。我知道在界面构建器中我们可以使用自动布局。但是,如何以编程方式向此按钮添加约束?

因为现在按钮宽度根据屏幕尺寸而变化,尽管左右边缘是固定的。如何根据设备避免元素streatching,并且我想在按钮和父视图边框之间管理左右两侧之间的相同间隙。

我该怎么做?请帮我 感谢

1 个答案:

答案 0 :(得分:3)

这就是你想要的

 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];

截图 iphone 6

iPhone 6p

更新

H:| -80- [按钮] -80- | ,这在水平创建约束,按钮左右按钮保持为80

" V:[按钮(40)] - 90- |" ,这会在垂直方向创建约束,按钮高度保持为40,底部到超级视图底部保持为90