Xcode自动布局:最适合方形

时间:2016-08-22 16:59:51

标签: ios xcode autolayout

我有一个自定义的方形视图,可以根据需要增长和缩小。我的自定义视图只是覆盖drawRect来呈现内容。

包含视图是一个矩形,但不是正方形。宽高比根据设备方向和类型而变化。我需要适应我的自定义视图,以便它在容器中占用最大空间,但保留1:1的宽高比。

如果可能的话,我想在IB中设置约束而不是代码。我有以下限制:

  • 容器中的垂直居中
  • 容器中的水平居中
  • 宽高比(1:1)
  • 内容模式设置为缩放以填充

我尝试了各种方法使自定义视图适合容器,这给了我IB布局错误,例如:

  • 宽度< =容器宽度
  • 高度< =容器高度

我无法设置任何相同的尺寸,因为我不知道容器是垂直的还是水平的......

这似乎是一项基本任务,但我无法解决这个问题。在矩形中放置正方形的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

保留您已有的约束,并添加新约束:

  • 宽度和高度等于超级视图,但优先级低于宽高比约束
  • 宽度和高度< =超视图尺寸

答案 1 :(得分:0)

前三个约束是正确的,删除​​其他约束并设置

  • 领先或尾随
  • 顶部或底部

对superview的约束

现在选择新添加的约束,并将它们> =(大于或等于)设为0。

现在你需要给你的视图赋予宽度或高度约束,它可以从它的子视图中获得它与我们滚动视图的相同,或者给你的视图宽度等于320并使它也大于或等于。