Bal*_*yal 4 iphone objective-c ios
我在ios 8中创建了一个应用程序。由于我有4个垂直可用的标签(它应在某些条件下更改位置),因此我已禁用自动布局并以编程方式设置了约束。现在,问题是我可以为水平和垂直位置,宽度和高度设置约束,我找不到任何方法为标签之间的水平和垂直间距添加约束。
谁能帮我做到这一点。
到目前为止,我有以下代码:
NSArray *constraint_V_WebUrl = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[weburl(31)]" options:0 metrics:nil views:contentDictionary];
NSArray *constraint_H_WebUrl = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[weburl(196)]" options:0 metrics:nil views:contentDictionary];
NSArray *constraint_POS_H_WebUrl = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-13-[weburl]" options:0 metrics:nil views:contentDictionary];
[self.cardDetails addConstraints:constraint_POS_V_WebUrl];
[self.cardDetails addConstraints:constraint_POS_H_WebUrl];
[self.cardDetails addConstraint:[NSLayoutConstraint constraintWithItem:self.weburl attribute:NSla relatedBy:NSLayoutRelationEqual toItem:self.cardDetails attribute:NSLayoutAttributeTopMargin multiplier:1 constant:0.0]];
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常。但是我想在标签之间设置水平和垂直间距。
您可以同时使用可视格式和代码格式来定义约束。视觉格式有很多限制,并不适用于所有情况。
您可以使用(水平间距):
[NSLayoutConstraint constraintWithItem:YourViewAtLeft
attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual
toItem:YourViewAtRight attribute:NSLayoutAttributeLeft
multiplier:1.0 constant:ValueOfSpacing];
// Paste your view names and constraint value.
Run Code Online (Sandbox Code Playgroud)
然后使用添加此约束addCostraint。
您可以使用约束将子视图与另一个视图保持固定距离(水平或垂直)。只需记住,当约束两个同级视图时,应将约束添加到父视图。
示例:假设您有2个标签label1和label2,它们都是UIView的子级,称为parentView。创建带有label2和label1作为项的约束,label2左边等于label1右边,乘数1且常数等于所需的水平间距。然后将约束添加到parentView,而不是两个标签。
示例代码:
[ parentView addConstraint:[NSLayoutConstraint constraintWithItem: label2
attribute: NSLayoutAttribueLeft
relatedBy: NSLayoutRelationEqual
toItem: label1
attribute: NSLayoutAttributeRight
multiplier: 1
constant: LABEL_SPACING ] ];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9432 次 |
| 最近记录: |