我的问题是这个方法:
(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
我已阅读文档,但我不明白这种方法的用途。
感谢您的回答。
答案 0 :(得分:47)
UIScrollView允许您拥有的内容大于您在屏幕上可以查看的内容。 在下图中,您可以看到一个内部带有绿色矩形的大红色矩形。
UIScrollView的contentArea属性定义视图的逻辑大小(红色矩形)。 滚动视图的可见区域由绿色矩形表示。 contentOffset是可见区域的左上角。更改contentOffset,可见区域将移动。
(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
上述方法会将contentOffset(绿色矩形的左上角)移动到指定位置,从而移动可见区域(绿色矩形)。
希望这会有所帮助。
答案 1 :(得分:35)
如documentation中所述。
滚动到特定偏移
滚动到特定的左上角位置(contentOffset
属性)可以通过两种方式完成。 setContentOffset:animated:
方法将内容滚动到指定的内容偏移量。如果动画参数为YES
,则滚动将以恒定速率从当前位置动画到指定位置。如果动画参数为NO
,则立即滚动并且不会发生动画。在这两种情况下,代理scrollViewDidScroll:
消息。如果禁用动画,或者通过直接设置contentOffset
属性设置内容偏移,则委托会收到一条scrollViewDidScroll:
消息。如果启用了动画,则代理会在动画正在进行时收到一系列scrollViewDidScroll:
消息。动画完成后,代理会收到scrollViewDidEndScrollingAnimation:
消息。
即。简单来说,如果要通过传递滚动位置值(即滚动量)以编程方式滚动UIScrollView
,可以使用此方法。
此方法还调用委托scrollViewDidScroll:
,即UIScrollView
类的委托方法,通过该方法可以保持UIScrollView
的滚动量。