2012-02-16 107 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