UIScrollView和setContentOffset

时间:2011-05-12 12:01:20

标签: iphone cocoa-touch ios uiscrollview

我的问题是这个方法:
(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

我已阅读文档,但我不明白这种方法的用途。

感谢您的回答。

2 个答案:

答案 0 :(得分:47)

UIScrollView允许您拥有的内容大于您在屏幕上可以查看的内容。 在下图中,您可以看到一个内部带有绿色矩形的大红色矩形。

UIScrollView的contentArea属性定义视图的逻辑大小(红色矩形)。 滚动视图的可见区域由绿色矩形表示。 contentOffset是可见区域的左上角。更改contentOffset,可见区域将移动。

(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

上述方法会将contentOffset(绿色矩形的左上角)移动到指定位置,从而移动可见区域(绿色矩形)。

希望这会有所帮助。

enter image description here

答案 1 :(得分:35)

documentation中所述。

滚动到特定偏移

滚动到特定的左上角位置(contentOffset属性)可以通过两种方式完成。 setContentOffset:animated:方法将内容滚动到指定的内容偏移量。如果动画参数为YES,则滚动将以恒定速率从当前位置动画到指定位置。如果动画参数为NO,则立即滚动并且不会发生动画。在这两种情况下,代理scrollViewDidScroll:消息。如果禁用动画,或者通过直接设置contentOffset属性设置内容偏移,则委托会收到一条scrollViewDidScroll:消息。如果启用了动画,则代理会在动画正在进行时收到一系列scrollViewDidScroll:消息。动画完成后,代理会收到scrollViewDidEndScrollingAnimation:消息。

即。简单来说,如果要通过传递滚动位置值(即滚动量)以编程方式滚动UIScrollView,可以使用此方法。

此方法还调用委托scrollViewDidScroll:,即UIScrollView类的委托方法,通过该方法可以保持UIScrollView的滚动量。