2012-10-02 56 views
1

我使用iCarousel庫來滾動屏幕上的許多UIViews。每個視圖都填充整個屏幕。iCarousel配置任務

我需要以某種方式配置iCarousel,以便只用一個簡短的方式滾動一個視圖。

現在,我有

carousel.scrollSpeed = 0.1; 

但是從一個屏幕到另一個屏幕滾動,我需要在屏幕上從一個側面滑動手指到另一個。 如果我將scrollSpeed parametr設置爲更高的值,許多UIViews會滾動,但我需要配置爲每滾動一次只滾動一個UIView。

任何人都可以幫助我嗎?

回答

6

你最好的選擇將禁用滾動在圓盤傳送帶本身並附加一個UISwipeGestureRecognizer當用戶在任一方向刷卡來檢測,然後調用[轉盤scrollByNumberOfItems:1動畫:是],如果他們刷向前和[轉盤scrollByNumberOfItems :-1動畫:是],如果他們向後滑動。

編輯:

其實如果意見佔滿整個屏幕,我想一個更好的選擇將是你用我的SwipeView庫而不是iCarousel。 SwipeView具有與iCarousel相同的接口,但是基於UIScrollView,因此您可以啓用分頁,將numberOfItemsPerPage設置爲1,並使其行爲與您描述的完全相同。

https://github.com/nicklockwood/SwipeView

UPDATE:

以上的信息是過時的。 iCarousel現在通過設置pagingEnabled=YES支持單頁掃描。也就是說,如果這是您正在嘗試做的事,SwipeView可能仍然更合適。

1

實際上,這段代碼將會訣竅。

carousel.decelerationRate = 0.3; 
1

在該輕彈當轉盤減速的速率。數值越高意味着減速越慢。默認值是0.95。值應該在0.0的範圍內(旋轉木馬會在發佈時立即停止)到1.0(輪播無限期地繼續下去,不會放慢速度,除非達到最終)。

您應該嘗試一個介於0和0.5之間的值。它的行爲不像滾動視圖,但這是最接近你可以得到它。請參閱(https://github.com/nicklockwood/iCarousel/issues/94

1

你可以嘗試這樣的---

self.iCarosoul.decelerationRate=0.65; 
self.iCarosoul.scrollSpeed=3; 
self.iCarosoul.stopAtItemBoundary=YES 
self.iCarosoul.scrollToItemBoundary=YES;