2012-10-02 118 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;