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 中占用更多空间并且不响应触摸事件