如何以编程方式添加自动布局约束,使按钮位于其超级视图底部50点以上?

时间:2015-09-09 02:06:19

标签: ios objective-c autolayout

我正在努力弄清楚如何使用VFL来实现这一目标。我总是希望按钮比其超视图底部高出50个点。我不想指定底部顶部和超级视图顶部之间的距离,因为这会因设备而异。

我只能使用界面构建器找到其他类似的问题,但我的项目不使用界面构建器或swift,但我想在Objective-C中以编程方式执行此操作。

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您不知道如何使用VFL,我认为您应该查看该文件:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/VisualFormatLanguage/VisualFormatLanguage.html

button.translatesAutoresizingMaskIntoConstraints=NO;
NSArray *constraints=[NSLayoutConstraint constraintsWithVisualFormat:@"V:[button]-50-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)];
// add more constraints to satisfy auto layout
[superview addConstraints:constraints];
顺便说一句,我建议使用Masonry,https://github.com/SnapKit/Masonry,它更优雅。

答案 1 :(得分:0)

使用类似的东西:

[yourSuperView addConstraint:[NSLayoutConstraint constraintWithItem:yourButton
                                                      attribute:NSLayoutAttributeBottom
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:yourSuperView
                                                      attribute:NSLayoutAttributeBottomMargin
                                                     multiplier:1.0
                                                       constant:-50.0]];

您可以在此处详细了解:Working with Auto Layout Programmatically