UIScrollView - 检测layoutSubviews中的滚动与方向变化?
Posted
技术标签:
【中文标题】UIScrollView - 检测layoutSubviews中的滚动与方向变化?【英文标题】:UIScrollView - detecting scrolling vs orientation change in layoutSubviews? 【发布时间】:2016-11-24 23:25:31 【问题描述】:问题 - 在自定义 UIScrollView 的“layoutSubviews”回调中,如何检测滚动(可能不需要子视图重新布局)与其他事件(例如方向更改(是否需要重新布局)?
背景 - 我想在滚动发生时以编程方式添加/删除子视图,但在这种情况下,滚动视图上的现有视图不需要重新布局,所以我不想通过所有这些计算。但是,当发生诸如方向更改之类的事件时,我确实想重新计算所有位置。所以我的问题旨在找到处理这个问题的最佳方法。在这种情况下,我不想顺便使用 UIContainerView。
【问题讨论】:
【参考方案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 中?想知道我是否错过了另一个我应该考虑的回调以上是关于UIScrollView - 检测layoutSubviews中的滚动与方向变化?的主要内容,如果未能解决你的问题,请参考以下文章