2012-02-16 134 views
9

我看过苹果滚动查看编程指南适用于iOS,但仍然感到困惑以下部分:的UIScrollView:动画和scrollRectToVisible:setContentOffset之间的差异动画

滚动到一个特定的偏移

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

制作可见

矩形也可以滚动的矩形区域,使其 可见。当应用程序需要 将当前在可见区域之外的控件显示到可见视图中时,这是特别有用的。 scrollRectToVisible:animated:方法滚动 指定的矩形,以便它在滚动视图内可见。 如果动画参数为YES,则该矩形以恒定速度滚动到视图 中。与setContentOffset:animated:一样,如果动画 被禁用,委托会发送一个单一的scrollViewDidScroll: 消息。如果启用了动画,则代理会随着动画的进展发送一系列的 scrollViewDidScroll:消息。在 的情况下scrollRectToVisible:动画:滚动视图的跟踪和拖动 属性也是NO。

如果动画为scrollRectToVisible启用:动画:,的 委托接收scrollViewDidEndScrollingAnimation:消息时,该滚动视图已经到达 指定的位置和动画完成 提供通知。

我认为setContentOffset:animated和scrollRectToVisible之间非常相似:动画,有人可以给他们一些提示吗?

和scrollRectToVisible:animated:类似于scrollViewDidEndDecelerating:animated:也是。

回答

14

简短的回答:

setContentOffset:动画保留zoomscale

scrollRectToVisible:animated可能会改变它。

+0

谢谢,还有其他人吗? – ThinkChris 2012-02-16 01:25:07

+1

如果您使用setContentOffset:animated:您可以在contentSize之外滚动。 – 2013-06-06 08:44:23

+0

@GustafRosenblad这是不正确的,你不能在contentSize之外滚动,你将不得不添加内容插入。 – 2013-08-13 12:36:58