【发布时间】:2015-05-13 03:30:36
【问题描述】:
我正在使用视觉格式来定义约束。目标是在超级视图的底部放置一个 UIView,比如 self.view,高度固定为 40,宽度自动。我已经使用 Storyboard 完成了此操作,但我无法以编程方式完成此操作。这是我写的代码。如果我没有给出固定宽度,应用程序就会崩溃。它因以下约束而崩溃:“H:[redView]|”。如果我将其更改为“H:[redView(100)]”,它就可以工作。我不想使用 self.bounds 并从那里获得宽度。它应该从超级视图的左侧、视图的底部和右侧粘贴。
请帮忙!
NSDictionary *viewsDictionary = @{@"redView":self.redView};
NSArray *constraint_H = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[redView(40)]"
options:0
metrics:nil
views:viewsDictionary];
NSArray *constraint_V = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[redView]|"
options:0
metrics:nil
views:viewsDictionary];
// 3. Define the redView Position
NSArray *constraint_POS_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[redView]|"
options:0
metrics:nil
views:viewsDictionary];
NSArray *constraint_POS_H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[redView]"
options:0
metrics:nil
views:viewsDictionary];
[self.redView addConstraints:constraint_H];
[self.redView addConstraints:constraint_V];
[self.view addConstraints:constraint_POS_H];
[self.view addConstraints:constraint_POS_V];
【问题讨论】:
-
异常信息应该很清楚了。
标签: ios objective-c ios7 autolayout