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写。
答案 0 :(得分:2)
你可以做点什么,
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是superview右边缘的标准间距
如果你在这里button1(button2/2)
,那么它意味着它的按钮2的一半宽度。如果您需要以高度方式使用此方案,则只需在语句之前添加V:
。
另一个考试,
V:|-(==padding)-[imageView]->=0-[button]-(==padding)-|
这种约束意味着,
图像视图的顶部必须是从顶部开始的填充点 上海华
图像视图的底部必须大于或等于0 从按钮顶部开始点
按钮的底部必须是底部的填充点 超级视图。
|[button(==200@750)]-[label]|
此约束意味着,按钮的宽度应为200磅,优先级为750。
|-30.0@200-[label]
标签应与superview左侧间隔30个点,优先级为200。
简而言之,您可以VFL
格式设置任何类型的约束。
有关详细信息,请参阅this link as reference!
希望这会有所帮助:)