Ios 自动布局:相同高度和宽度的约束
我对视觉格式有以下限制Ios 自动布局:相同高度和宽度的约束,ios,autolayout,nslayoutconstraint,Ios,Autolayout,Nslayoutconstraint,我对视觉格式有以下限制 @“|-(0)-[[view0]-(5)-[view1(view0)]-(5)-[view2(view0)]-(5)-[view3(view0)]-(0)-” 视图的数量很大,为了简单起见,只考虑3个视图 使用上述约束,我将视图设置为具有相同的宽度。 但也需要设置视图,使其具有相同的高度 是否有办法在上述约束中指定视图的宽度和高度相同 我知道可以设置视图的约束,使其具有与此相同的高度 @“V:[view1(view0)]和@“V:[view2(view0)],但我希望只有
@“|-(0)-[[view0]-(5)-[view1(view0)]-(5)-[view2(view0)]-(5)-[view3(view0)]-(0)-”
视图的数量很大,为了简单起见,只考虑3个视图
使用上述约束,我将视图设置为具有相同的宽度。 但也需要设置视图,使其具有相同的高度 是否有办法在上述约束中指定视图的宽度和高度相同 我知道可以设置视图的约束,使其具有与此相同的高度@“V:[view1(view0)]
和@“V:[view2(view0)]
,但我希望只有一个可视约束字符串
欢迎您提供任何建议/参考!不幸的是,答案是否定的,您不能在同一视觉布局字符串中混合高度和宽度。我将在下面解释原因 首先,这里是指向的链接。这定义了
-[NSLayoutConstraint constraintsWithVisualFormat:options:metrics:views:
的有效字符串
从该参考页中,我们可以看到有效的可视格式字符串定义为:
H|V
(:)?
()?
()*
()?
方向是我们感兴趣的。根据上面的定义,我们可以在可视格式字符串的开头设置方向。还有其他地方可以设置方向吗?没有。深入到其他符号(
、
)和
),符号
不会再次出现
现在让我们看一下符号
,它的定义如下:
H|V
这意味着您可以将
替换为H
(水平)或V
(垂直)
也就是说
(<orientation>:)?
(:)?
是(H:)?
还是(V:)?
?
字符表示括号中包含的内容可以是0或1。这为(:)?
:H:
,V:
,或什么都没有提供了三种可能性(相当于H:
)
如图所示,在视觉格式字符串中只有一个位置可以设置方向,可以设置为水平方向或垂直方向,而不能同时设置为两个方向。这意味着您只能在单个视觉格式字符串中设置高度或宽度。关于回避问题的最后一节是错误的。它将以指定的间距垂直排列视图,但那不是他想要的。他只是想要他们有相同的高度。