VFL表达式未按预期转换IB约束

时间:2016-11-22 18:52:54

标签: ios swift

我是iOS开发的新手,VFL给我带来了巨大的麻烦。我试图将以下约束转换为VFL,作为一个研究案例的简单视图,但我的宽度永远不会推断,除非我明确指定宽度,否则视图永远不会显示。

enter image description here

H:|-50-[v0]-50-|
V:|-20-[v0(100)]

据我了解,这些表达式应转换为图像中的IB约束。我在这里做错了什么?

整个约束声明:

scrollView.addConstraints(
        NSLayoutConstraint.constraints(withVisualFormat: "H:|-50-[v0]-50-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": bigFrameUIView]))

scrollView.addConstraints(
        NSLayoutConstraint.constraints(withVisualFormat: "V:|-20-[v0(100)]", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": bigFrameUIView]))

1 个答案:

答案 0 :(得分:1)

对于UIScrollView,有几条规则。您可以查看here

但总之,你必须:

  • 仅为您的scrollView指定一个子视图并将其附加到 你的scrollView侧面,所以scrollView将它用作内容
  • 为添加的contentView的大小设置一些约束,因此它可以 推断scrollView关于contentSize
  • 将您的其他元素放在scrollView的contentView中

如果将此v0添加到UIView

,此代码可能会起作用