【发布时间】:2018-02-07 11:13:52
【问题描述】:
我有以下视图层次结构:
- 根视图
- 子视图
根的高度和宽度已经被约束(Top、Bottom、Leading、Trailing)拉伸,应该是 500 左右。孩子的高度也是由约束设置的,所以它也应该等于 500。
一切看起来都很好,但是当我访问孩子的 frame.bounds.height 时,它会返回整个屏幕的高度,而不是估计的 500。更糟糕的是,当我访问 frame.bounds.height 时Rootview 它返回 0,因为我已将框架设置为 .Zero。
我现在的问题是,如何从视图中获取被约束拉伸的宽度和高度?在我看来 .frame.bounds 不适用于自动布局。
展示:
print("collectionView height: ", String(describing: collectionView.frame.height) )
简历高度:0.0
CollectionView 是棕色视图:
我的主要目标是制作一个与棕色 collectionView 一样大的单元格。但这失败了,因为我无法获得动态大小的 collectionView 的宽度。
【问题讨论】:
-
您是否尝试过从
frame.bounds.height中删除bounds?另外,在哪里你在找这个?viewDidLoad?太早了 - 试试viewDidLayoutSubviews。 -
lthe4kman 所有答案都已过时,因为这个问题已经超过 6 年了
-
@dfd 嘿,谢谢你的回答。我正在 viewDidLoad 中尝试这个。我现在在 viewDidLayoutSubviews 中试试
-
非常感谢您的帮助。我在这方面工作了这么久!谢谢。
标签: ios swift autolayout