UIScrollView - 检测layoutSubviews中的滚动与方向更改?

时间:2016-11-24 23:25:31

标签: ios uiview uiscrollview uikit layoutsubviews

问题 - 在自定义UIScrollView的“layoutSubviews”回调中,如何通过其他事件(如方向更改)检测不同的滚动(可能不需要子视图重新布局)确实需要重新布局)?

背景 - 我想在滚动时以编程方式添加/删除子视图,但在这种情况下,scrollview上的现有视图不需要重新布局,所以我不想通过所有这些计算。但是当发生方向改变等事件时,我确实想重新计算所有位置。所以我的问题是找到解决这个问题的最佳方法。在这种情况下,我不想让顺便使用UIContainerView。

1 个答案:

答案 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
    }
}