NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:label1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:label2 attribute:NSLayoutAttributeTop multiplier:1.0 constant:5];
我试图用VFL编写此代码,但似乎VFL仅提供了NSLayoutFormatAlignAllTop属性。所以我不能将label1设置为低于label2 5个点。
我想知道是否不能用VFL编写此约束。
最佳答案
你可以做类似的事情,
NSArray *verticalConstraints1 =[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[label1]-20-|" options:0 metrics:nil views:views]; // this set top and bottom vertical constraint
NSArray *verticalConstraints1 =[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[label1]" options:0 metrics:nil views:views]; // this will set only top
NSArray *horizontalConstraints =[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[label1]-20-[label2]-20-|" options:0 metrics:nil views:views]; //this will vertical constraint between two label and top and bottom to label1 and label2 respactively
您可以参考this link以获得更多详细信息。
更新:
例如,
|-[button1(button2)]-[button2]-|
此约束意味着,button1的宽度必须与button2相同,它们之间具有标准间距,button1是距父视图左边缘的标准间距,而button2是距父视图右边缘的标准间距。
如果在这里使用
button1(button2/2)
,则表示它是button2宽度的一半。如果您以高度方式需要这种情况,则只需在语句前添加V:
。另一个例子
V:|-(==padding)-[imageView]->=0-[button]-(==padding)-|
这种限制意味着
图片视图的顶部必须是从顶部开始的填充点
超级观看
图片视图的底部必须大于或等于0
从按钮顶部指向的点
按钮的底部必须是距底部的填充点
超级视图。
|[button(==200@750)]-[label]|
这意味着按钮的宽度应为200点,优先级为750。
|-30.0@200-[label]
标签应与超级视图的左侧间隔30点,优先级为200。
简而言之,您可以使用
VFL
格式设置任何类型的约束。有关更多详细信息,请参考this link as reference!
希望这会有所帮助:)
关于ios - 如何将约束转换为VFL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37453882/