问题 - 在自定义UIScrollView的“layoutSubviews”回调中,如何通过其他事件(如方向更改)检测不同的滚动(可能不需要子视图重新布局)确实需要重新布局)?
背景 - 我想在滚动时以编程方式添加/删除子视图,但在这种情况下,scrollview上的现有视图不需要重新布局,所以我不想通过所有这些计算。但是当发生方向改变等事件时,我确实想重新计算所有位置。所以我的问题是找到解决这个问题的最佳方法。在这种情况下,我不想让顺便使用UIContainerView。
答案 0 :(得分:1)
let priorLayoutSize = CGSize.zero
func layoutSubviews() {
super.layoutSubviews()
let layoutSize = bounds.size
if layoutSize != priorLayoutSize {
priorLayoutSize = layoutSize
// do full layout
} else {
// do incremental layout
}
}