【发布时间】:2011-08-24 01:46:12
【问题描述】:
我的问题是关于这个方法:(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
我已经阅读了文档,但我不明白这个方法是干什么用的。
感谢您的回答。
【问题讨论】:
标签: iphone cocoa-touch ios uiscrollview
我的问题是关于这个方法:(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
我已经阅读了文档,但我不明白这个方法是干什么用的。
感谢您的回答。
【问题讨论】:
标签: iphone cocoa-touch ios uiscrollview
如documentation 中所述。
滚动到特定偏移量
滚动到特定的左上角位置(contentOffset 属性)可以通过两种方式完成。 setContentOffset:animated: 方法将内容滚动到指定的内容偏移量。如果动画参数为YES,则滚动将以恒定的速率从当前位置动画到指定位置。如果动画参数为NO,则立即滚动并且不发生动画。在这两种情况下,代表scrollViewDidScroll: 消息。如果动画被禁用,或者如果您通过直接设置contentOffset 属性来设置内容偏移量,则委托会收到一条scrollViewDidScroll: 消息。如果启用了动画,则代理在动画进行时会收到一系列scrollViewDidScroll: 消息。动画完成后,代理会收到scrollViewDidEndScrollingAnimation: 消息。
即简而言之,如果您想通过传递滚动位置值(即滚动量)以编程方式滚动UIScrollView,则可以使用此方法。
该方法还调用了scrollViewDidScroll:的委托,即UIScrollView类的委托方法,通过该方法可以保持UIScrollView的滚动量。
【讨论】:
UIScrollView 让您拥有比您在屏幕上可以查看的内容更大的内容。 在下图中,您可以看到一个大红色矩形,里面有一个绿色矩形。
UIScrollView 的 contentArea 属性定义了视图的逻辑大小(红色矩形)。 滚动视图的可见区域由绿色矩形表示。 contentOffset 是可见区域的左上角。改变 contentOffset,可见区域会左右移动。
(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
上面的方法会将contentOffset(绿色矩形的左上角)移动到指定位置,从而移动可见区域(绿色矩形)。
希望这会有所帮助。
【讨论】: