我正在努力弄清楚如何使用VFL来实现这一目标。我总是希望按钮比其超视图底部高出50个点。我不想指定底部顶部和超级视图顶部之间的距离,因为这会因设备而异。
我只能使用界面构建器找到其他类似的问题,但我的项目不使用界面构建器或swift,但我想在Objective-C中以编程方式执行此操作。
提前致谢。
答案 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