布局布局后的 Swift Autolayout 回调函数
Posted
技术标签:
【中文标题】布局布局后的 Swift Autolayout 回调函数【英文标题】:Swift Autolayout callback function once layout is laid out 【发布时间】:2016-02-17 14:31:54 【问题描述】:我如何知道自动布局何时布局?
有回调函数吗?
我正在使用 SnapKit,我想在布局视图时设置一些东西。
我有类似下面的东西,
vehicleGroup.snp_makeConstraints (make) -> Void in
make.width.equalTo(self.headerView).offset(-20)
make.centerX.equalTo(self)
make.top.bottom.equalTo(self.headerView)
一旦布局了上面的视图,我想使用下面的视图的宽度和高度,
vehicleGroup.contentSize = CGSize(width: vehicleGroup.frame.width, height: vehicleGroup.frame.size.height)
【问题讨论】:
可能viewDidLayoutSubviews
是你最好的选择。
【参考方案1】:
好吧,没有回调,但您可以覆盖 UIView
类的 -layoutSubviews
(自动布局发挥其魔力)。但是不能保证自动布局已经完成它的事情,-layoutSubviews
可以在视图出现在屏幕上之前多次调用。
如果您需要 UIViewController
,那么您需要覆盖与 UIView
的 -layoutSubviews
非常相似的 -viewDidLayoutSubviews
【讨论】:
以上是关于布局布局后的 Swift Autolayout 回调函数的主要内容,如果未能解决你的问题,请参考以下文章
Swift + Autolayout:旋转 UILabel,保持在 UIView 旁边
Swift - UIScrollView 内的 UICollectionView - 自动布局