UIScrollView 中的 ICarousel
Posted
技术标签:
【中文标题】UIScrollView 中的 ICarousel【英文标题】:ICarousel in UIScrollView 【发布时间】:2013-08-22 15:29:04 【问题描述】:我将 ICarousel 添加到我的 ios 项目中,它运行良好。我可以滚动图片。
然后我的视图包含另一个数据。所以我需要添加一个覆盖我所有视图的 UISCrollView。所以,现在,我的 ScrollView 中有一些元素(标签、文本视图和 ICarousel 的 UIVIew)。
ScrollView 工作正常。但是现在,ICarousel 不会切换图片。图片已加载(我看到第一张和第二张的一部分),但轮播不再起作用。
有人有同样的问题吗?如何解决?
编辑:
在@Wain 的建议之后,我尝试了这个:
- (void)viewDidLoad
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
[self.view addGestureRecognizer:panRecognizer];
panRecognizer.delegate = self;
- (void)pan:(id)sender
NSLog(@"Pan");
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
return YES;
它不起作用,但我用断点检查,当我尝试水平滚动时它运行shouldRecognizeSimultaneouslyWithGestureRecognizer
方法。
我哪里错了?
【问题讨论】:
你知道iCarousel使用UIGestureRecognizers
还是touchesBegan
?
这里好像用到了:github.com/nicklockwood/iCarousel/blob/master/iCarousel/…
【参考方案1】:
看起来像是手势识别器之间的冲突,因为默认情况下,任何时候都只能激活一个。
不确定为什么您的滚动视图会涵盖所有内容,但您应该能够让您的控制器成为手势的代表并实现 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
以允许它们同时识别。
UIScrollView
有一个 panGestureRecognizer
属性,您可以访问该属性以将自己设置为委托。
iCarousel
有点不同,因为它不会使手势公开可用,因此如果在滚动视图上设置委托不起作用,您可以编辑轮播(将自身设置为委托)以实现委托方法。
【讨论】:
我认为这可能是解决方案。我尝试了一些东西,但它不起作用。我编辑我的问题。谢谢 哪些 gettures 以otherGestureRecognizer
传递?您是否尝试将自己添加为其他手势(如滚动视图平移手势和轮播平移手势)的代表?
看来otherGestureRecognizer
总是空的。不好意思我是ios开发新手,有没有添加其他手势delegate的例子?以上是关于UIScrollView 中的 ICarousel的主要内容,如果未能解决你的问题,请参考以下文章