【问题标题】:ICarousel in UIScrollViewUIScrollView 中的 ICarousel
【发布时间】: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方法。

我哪里错了?

【问题讨论】:

标签: iphone ios objective-c cocoa-touch icarousel


【解决方案1】:

看起来像是手势识别器之间的冲突,因为默认情况下,任何时候都只能激活一个。

不确定为什么您的滚动视图会涵盖所有内容,但您应该能够让您的控制器成为手势的代表并实现 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 以允许它们同时识别。


UIScrollView 有一个 panGestureRecognizer 属性,您可以访问该属性以将自己设置为委托。

iCarousel 有点不同,因为它不会使手势公开可用,因此如果在滚动视图上设置委托不起作用,您可以编辑轮播(将自身设置为委托)以实现委托方法。

【讨论】:

  • 我认为这可能是解决方案。我尝试了一些东西,但它不起作用。我编辑我的问题。谢谢
  • 哪些 gettures 以otherGestureRecognizer 传递?您是否尝试将自己添加为其他手势(如滚动视图平移手势和轮播平移手势)的代表?
  • 看来otherGestureRecognizer 总是空的。不好意思我是ios开发新手,有没有添加其他手势delegate的例子?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
相关资源
最近更新 更多