4

当 UIView 出现在屏幕上时,它会调用什么方法?例如,如果一个有一个 UIScrollView 并且我用一百个视图填充它,一个在另一个之下,当 UIViews 滚动以使它们出现在屏幕上时,它们会调用什么方法?

是 -(void)didMoveToWindow 吗?别的东西?

4

3 回答 3

2

如果您试图找出视图何时滚动到 scrollView 边界,使用表格视图可能更容易并且可能更高效......表格视图具有让您知道单元格何时出现并且您可以查询可见的方法细胞随时。

于 2013-10-13T12:26:03.587 回答
1

特别是对于滚动视图,委托(通常是控制器)可以收到滚动视图已滚动的通知。当您收到此回调时,您可以编写一些代码来遍历子视图并检查哪些在滚动视图的可见框架中(使用CGRectIntersectsRect,contentOffsetbounds)。

于 2013-10-13T12:27:47.890 回答
0

没有,但是如果您实现 UIScrollView 委托,则 UIScrollView 确实会调用一个为您提供滚动位置等的方法(许多方法,很可能是 scrollViewDidScroll)。

https://developer.apple.com/library/ios/documentation/uikit/reference/uiscrollviewdelegate_protocol/Reference/UIScrollViewDelegate.html

要查看哪个视图,您必须通过查看 CGRectIntersectsRect(scrollView.bounds, subview.frame) 是否返回 true 来计算哪个视图可见。

于 2013-10-13T12:26:22.290 回答