UIScrollView和setContentOffset

iza*_*zan 12 iphone cocoa-touch uiscrollview ios

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

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

谢谢你的回答.

Ale*_*ciu 47

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

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

(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助.

在此输入图像描述


Jan*_*mal 35

文档中所述.

滚动到特定偏移

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

即简单来说,如果你想UIScrollView通过传递滚动位置值(即滚动量多少)以编程方式滚动,则可以使用此方法.

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