iCarousel 每次触摸显示一个视图(幻灯片)

Posted

技术标签:

【中文标题】iCarousel 每次触摸显示一个视图(幻灯片)【英文标题】:iCarousel show one view per touch (slide) 【发布时间】:2013-03-04 14:37:38 【问题描述】:

我使用 iCarousel 通过 do slide 进行幻灯片视图。一切正常,但是当我在屏幕上滑动时,我会同时显示几个视图,但我需要每张幻灯片显示一个视图。

我正在尝试更改 - (void)didPan:(UIPanGestureRecognizer *)panGesture 中的任何数据,但仍然没有任何进展。我应该更改她的代码吗:

NSInteger direction = (int) (_startVelocity / fabsf(_startVelocity)); [self scrollToItemAtIndex:self.currentItemIndex + direction animated:YES];?

有没有人知道我可以在哪里更改代码以达到我的目的?

【问题讨论】:

【参考方案1】:

iCarousel 目前无法执行此操作,但从您的描述看来,您应该改用我的 SwipeView 库,该库旨在以这种方式工作(顺便说一下,我还编写了 iCarousel,所以这不是尝试抹黑它)。

SwipeView 的界面与 iCarousel 完全相同,因此它应该是一个直接替代品。然而它是基于 UIScrollView 的,并且支持分页。

https://github.com/nicklockwood/SwipeView

更新:

最新版本的 iCarousel 现在确实支持使用 pagingEnabled 属性进行单项滑动,但对于简单的 2D 滚动视图,SwipeView 仍然是更好的选择。

【讨论】:

【参考方案2】:

修改 iCarousel 源代码 iCarousel.m 文件可以做到这一点!

- (void)didPan:(UIPanGestureRecognizer *)panGesture 

 .....

     case UIGestureRecognizerStateChanged: 
            CGFloat translation = _vertical? [panGesture translationInView:self].y: [panGesture translationInView:self].x;

            translation = translation * 0.35; // Add This line to change the really translation.

     

希望能帮到你!

【讨论】:

以上是关于iCarousel 每次触摸显示一个视图(幻灯片)的主要内容,如果未能解决你的问题,请参考以下文章

UIButton ImageView 在 iCarousel 中占用更多空间并且不响应触摸事件

无法从 web url 向 iCarousel 显示图像

iCarousels 卡在 iOS 7 中

讲解iOS开发中拖动视图的实现

如何显示 iCarousel 中心视图仅突出显示其他最近的视图显示一些黑暗

iPhone - 在 UIViewController 中处理触摸幻灯片