在我们的代码中很多地方,我一直看到这个…
containerView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[view]-0-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view":childView]))
containerView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[view]-0-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view":childView]))
字符串
对我来说是多余的。我想知道是否有一种方法可以将这些格式组合成一个字符串;像这样的事
containerView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[view]-0-|;V:|-0-[view]-0-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view":childView]))
型
那么这样的事情可能吗?
4条答案
按热度按时间wnrlj8wa1#
对不起,你不能用这个,但你可以试试这样的东西
字符串
vs3odd8k2#
备注:
1.您应该激活约束,而不是将它们添加到视图中(自iOS 8起)。
1.您可以跳过整个
options: NSLayoutFormatOptions(rawValue: 0)
,因为这是默认值。通过这些更改,我们得到这行代码:
字符串
lskq00tm3#
以下是Shehata的回答,使用不同的代码格式:
字符串
pu3pd22g4#
不,不幸的是,语法不允许这样做-参见the docs中的语法
具体地,线
<orientation> H|V
意味着orientation
的值可以是H
或V
,但不能是两者。编程自动布局的一个好选择是使用开源DSL库-两个流行的示例是Cartography和Snapkit
我用过这两种方法,发现它们比VFL少得多,也比底层的API少得多