【问题标题】:UIScrollView - detecting scrolling vs orientation change in layoutSubviews?UIScrollView - 检测layoutSubviews中的滚动与方向变化?
【发布时间】:2016-11-24 23:25:31
【问题描述】:

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

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

【问题讨论】:

    标签: ios uiview uiscrollview uikit layoutsubviews


    【解决方案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
        }
    }
    

    【讨论】:

    • 谢谢 Rob - 你知道这是否通常是检查完成的地方,即在 layoutSubviews 中?想知道我是否错过了另一个我应该考虑的回调
    猜你喜欢
    • 2012-12-12
    • 2012-03-27
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 2011-02-18
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多