UIScrollView在每次滚动时都会调用layoutSubviews()方法

8
我继承了UIScrollView(IPhone SDK)并重写了(void)layoutSubviews; 方法。 我注意到每次滚动scrollView时都会调用这个方法。
这是正确的行为吗?如果这是默认行为,那么这不是一个性能杀手吗?
此致, heinrich

你为什么要子类化UIScrollView?为什么不直接将子视图添加到其中? - Martin Gordon
1
我也可以添加子视图,但这不是重点。 - Erik
1个回答

13

这是正确的行为,应该用于获取子视图的自定义布局。我已经多次使用它,即使添加了数百个项目,也没有任何性能问题。

下面是此主题的文档摘录:

子类也可以作为其他视图的容器。在这种情况下,只需重写指定的初始化方法 initWithFrame: 来创建视图层次结构。如果您想在绘制之前编程强制对子视图进行布局,请向视图发送 setNeedsLayout。然后当调用 layoutIfNeeded 时,会在显示之前调用 layoutSubviews 方法。子类应重写 layoutSubviews 方法以执行任何自定义的子视图排列。


我知道,那是ScrollView的预期行为。谢谢! - Erik
如果这个答案对你有帮助的话,也许你可以标记它为正确的:P。谢谢! - texmex5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接