sizeThat在视图上有约束(框架布局视图中的自动布局视图)

Pär*_*erk 6 uikit ios autolayout

这不可能做到

通过在layoutSubviews中计算和设置框架,查看A的子视图.

视图B使用约束来布局它的子视图.

视图A包含许多View B实例.

视图A在布局它们时需要知道其子视图的大小,因此它会调用sizeThatFits:它们.

视图B的高度取决于它的宽度.在我的例子中,它UILabel内部有一条多线.

B应该如何实现它,sizeThatFits:以便在size传递给参数sizeThatFits:和约束的情况下返回正确的大小?

到目前为止我尝试/考虑的内容:

systemLayoutSizeFittingSize: - 不起作用,因为它没有考虑传递给它的确切大小.它不能用于指定精确的宽度,例如,当水平收缩时垂直生长的视图.它只提供最大压缩尺寸或最大尺寸.

intrinsicContentSize- 据我所知,这用于将信息传递自动布局.我们想要的是 Auto Layout 获取信息.

到目前为止,这就是我的理由.如果我犯了错误,请纠正我.请帮助我,如果有人能指出我是如何完成的,我将非常感激!

编辑:此外,也许有一些完全不同的方式来做到这一点,甚至没有使用sizeThatFits:?我唯一的要求是我可以在"外部"视图(视图A)中继续使用框架布局,在"内部视图"(视图B)中继续使用自动布局.

edit2:添加了一张图片来说明我必须解决的确切情况

edit3:忘了提,我需要支持iOS 7.0

Gre*_*son 0

从图中可以看出,UIStackView 对于视图 A 来说可能是更好的方法?

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/

然后用边距将视图 A UIStackView 的底部偏移到最后一个视图 B 的底部进行约束