iOS 自动布局 - 当您想让视图拉伸到其父级的完整大小时,正确的方法是啥?
Posted
技术标签:
【中文标题】iOS 自动布局 - 当您想让视图拉伸到其父级的完整大小时,正确的方法是啥?【英文标题】:iOS auto layout - when you want to make a view stretch to the full size of its parent, what is the correct way to go?iOS 自动布局 - 当您想让视图拉伸到其父级的完整大小时,正确的方法是什么? 【发布时间】:2019-05-22 16:37:19 【问题描述】:我想让子视图拉伸到其父视图的全尺寸。 使用自动布局的正确方法是什么?
-
将所有边固定到父视图(前、上、后、下边)
设置等宽+center-X+等高+center-Y
【问题讨论】:
我更喜欢使用第一个选项,前导、尾随、顶部和底部 equalToSuperView 您选择其中一个的唯一原因是 (a) 与您在整个应用程序中的编码方式保持一致,以及 (b) 如果视图可能发生更改并且您需要缩小视图某个方向(即从上到下,您需要一个底部锚点)。第三个原因是个人喜好。 【参考方案1】:另外,您建议的两个选项都可以完成工作(前 1 个是常见的)
1-顶部,前导,等宽等高
2-底部,尾随,等宽等高
3-top,leading,trailing and equal height
4-顶部、底部、前导、等宽
也有很多方法可以做到这一点,没有比其他更正确的设置,最重要的是有不间断的约束,好像发生冲突时除了意外的 UI 结果之外还会出现性能问题
【讨论】:
【参考方案2】:在我看来,选项 1 是唯一可行的方法。 这两个选项都可以解决问题,但我坚信 1 比选项 2 更“正确”。
自动布局是一种语言,因此我们应该正确使用它的语法。与语言一样,传递信息有多种方式,但有些方式比其他方式更好。
在这种情况下,选项 1 准确地描述了我们想要做的事情,并按字面意思描述它:将所有子边缘固定到其父边缘。 选项 2,是对居中视图的边缘情况的滥用,其中它的大小与另一个视图相同。如果我们口头指示我们的代码,这不是我们会说的。
【讨论】:
以上是关于iOS 自动布局 - 当您想让视图拉伸到其父级的完整大小时,正确的方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章