2012-08-08 24 views
6

我有一個scrollview寬度爲88的圖像視圖88如何在iPhone中製作無限滾動視圖?

我想scrollview滾動到每個圖像視圖(不分頁)

我想讓在iPhone無限滾動視圖,這意味着當它滾動到最後項目它會顯示第一個項目旁邊..

我一直在嘗試偏移,但它停止時,它通過偏移量和我已經使用蘋果街頭卷軸,它不允許我停止中心的每個元素(就像Picker視圖一樣)。

+0

莫非要與或沒有用戶交互? – 2012-08-08 10:38:37

回答

9

首先,我推薦使用UITableView,這樣可以保持較低的內存使用量。我曾在一個項目中成功使用的一種方法如下:

    1.列出項目

複製您的單元格的內容,我的意思是,如果你有這樣5個項目:

| 1 | 2 | 3 | 4 | 5 |

您應該添加相同(可重複使用的引擎表視圖,這不是一個大問題),在表的末尾,以這樣的:

| 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 |

    2。使用以下代碼修改scrollViewDidScroll:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if (scrollView == _yourScrollView) { 
     CGFloat currentOffsetX = scrollView.contentOffset.x; 
     CGFloat currentOffSetY = scrollView.contentOffset.y; 
     CGFloat contentHeight = scrollView.contentSize.height; 

     if (currentOffSetY < (contentHeight/6.0f)) { 
      scrollView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY + (contentHeight/2))); 
     } 
     if (currentOffSetY > ((contentHeight * 4)/ 6.0f)) { 
      scrollView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY - (contentHeight/2))); 
     } 
    } 
} 

上面的代碼將滾動位置移動到頂部,如果您幾乎達到滾動的最終位置;或者,如果你幾乎在上面,將你移到底部...

    3.就是這樣。
+2

偉大的解決方案。然而,有什麼辦法可以在偏移量改變時省略這個'眨眼'嗎? – Vive 2013-11-21 14:03:49

1

下面是我用來做的解決方案的簡短說明。假設你有從0到9的計數器,那麼當你進行轉換9 - > 0時,你實際上在9(在scrollView中)之後欺騙了另一個0(稱爲0'),動畫轉換爲0',比讓非動畫瞬間過渡到位於scrollView頂部的0。