2010-02-18 70 views
3

我希望能夠構建一個能夠滾動無限(無限)距離的滾動視圖(這是問題一,如何使用contentSize屬性執行此操作)。這樣做的原因是我可以實現滾動日曆視圖,用戶可以使用它來沿着單個軸滾動時間。如何擁有一個無界的UIScrollView

現在,我需要在那裏放置一個視圖來標記日期,當他們滾動。我的第二個問題是如何在滾動視圖中實現這樣的視圖。我可以有一個很長的視圖,比滾動視圖框架寬3或4倍,並且只需重新定位並更新每次滾動停止時僞造連續的欄。任何其他想法?

謝謝!

回答

0

不知道它可以......你可以嘗試CGSizeZero

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScrollView_Class/Reference/UIScrollView.html#//apple_ref/occ/instp/UIScrollView/contentSize

contentSize 

    The size of the content view. @property(nonatomic) CGSize contentSize Discussion 

    The unit of size is points. The default size is CGSizeZero. 

真正的問題是你忠實地想「infinate」還是你想大多infinate,只是使視圖不敬虔的大?或者你想自動調整大小。

也是無限滾動視圖的連續欄?酒吧永遠不會移動,因爲它不會接近開始或結束......您可以製作一個酒吧,拖到右邊將進入未來,並拖動到左邊將返回,然後只是總是將它重新定位在中心位置......其他則我不知道這裏有什麼意義。

0

製作'無限'滾動視圖不起作用 - 內存要求變得太大。最好的辦法是假的。

3 screen scrollview: 

|---|---|---| 
| | | | 
|---|---|---| 

做一個滾動視圖即3倍大一個屏幕,則當用戶結束滾動到滾動視圖的下一個第三,移動滾動位置回到中心第三和過快速移動內容到剩下。這發生得如此之快,以至於沒有可見的反饋給用戶,滾動視圖&內容剛剛被重新調整。

類似地,當用戶滾動回第一第三,改變滾動位置向中心第三和移動的所有內容的權利。

對於內存管理,您應該只加載適合這三個屏幕的內容。當您滾動到下一個三分之一時,您將重新定位,並加載下一個內容屏幕。

2

我知道它已經有一段時間,因爲你張貼了這個問題,但只是以供將來參考:

在2011 WWDC,蘋果給了所謂的「會話104 - 高級滾動型技術」一個偉大的演示。視頻可以從developer.apple.com或從iTunes中查看。

的主要概念:

1 - 一個子視圖比你的滾動視圖的範圍更大開始。

2 - 在scrollView中的-layoutSubViews中,檢查您想要無限滾動的方向上的contentOffset是否超過您指定的某個閾值(這不必是任何特定值,它可以是1點極端)。

3 - 如果是這樣的話,你的contentOffset歸零,你調整相同的量子視圖的框架。

最後兩個步驟發生在同一運行循環週期內,因此過渡將是不可見的。不過,請注意scrollBar會跳轉。但是,由於您的scrollView是無限的,因此無論如何都沒有視覺反饋,因此您最好在完成此操作後隱藏它們。

相關問題