当 iCarousel 包含 UITableView 作为子视图时无法滑动

Posted

技术标签:

【中文标题】当 iCarousel 包含 UITableView 作为子视图时无法滑动【英文标题】:Can not swipe when iCarousel contains UITableView as subview 【发布时间】:2013-10-21 05:28:29 【问题描述】:

您好,我在我的应用程序中使用iCarousel,它将有UITableView 作为子视图。当我尝试滑动或平移以显示下一个或上一个项目时,它不起作用。我认为UITableView's 手势识别器禁用了 iCarousel 的手势识别器。有很多这样的问题,但我没有看到任何答案。附上样张图片

请指导我解决这个问题。

代码

  _carousel =[[iCarousel alloc]initWithFrame:self.view.frame];
  _carousel.type = iCarouselTypeLinear;
  _carousel.pagingEnabled = YES;
  _carousel.delegate = self;
  _carousel.dataSource = self;
  [self.view addSubview:_carousel];

【问题讨论】:

您不能移动到 iCarousel 下一个或上一个子视图吗? 是的,我想你已经回答了类似的问题 当然。 icarousel 本身不适合您吗?因为该代码对我来说很好用。 哦,你有没有注意到 cmets 的回答还有一个人面临同样的问题 刚才看到了。我没有测试那个案例,好的,我会检查并更新你。 【参考方案1】:

看起来你的轮播没有居中,这让我觉得它的边界可能是错误的。

iCarousel 默认没有启用 clipsToBounds,这意味着如果边界错误,您仍然会看到您的项目视图,但可能无法与它们交互。

尝试在轮播上启用 clipsToBounds,并将 backgroundColor 设置为红色,这样您就可以查看轮播尺寸是否正确。

如果不是,您可能需要调整自动调整大小或自动布局约束。

更新:

这实际上是 iCarousel 中的一个错误,它与用于确定滑动手势是否应被轮播拦截的启发式方法有关。已在 beta 7 中修复。

【讨论】:

感谢您的回答,我会查看并通知您 我认为存在其他问题,tableview 位于轮播的中心,我也设置了 clipsToBounds 但不起作用 我的错;这是一个错误。我已经在 beta 7 中修复了它(你可以从 github 下载它) 非常感谢我会做的 github.com/nicklockwood/iCarousel 这个链接正确吗?我面临同样的问题..我一次只显示一个项目,即 self.view 中的中心项目,当我们向左或向右滑动它时,它将显示相应的项目,它更像 UIPageViewController ..问题仅发生在居中的项目中..如果我们从下一个或上一个项目滑动它正在工作

以上是关于当 iCarousel 包含 UITableView 作为子视图时无法滑动的主要内容,如果未能解决你的问题,请参考以下文章

为啥当我切换到上一个屏幕时,iCarousel 视图中的图像会显示在上一个屏幕中?

如何确定 Icarousel 停止在哪个视图上?

iCarousel 未正确设置标签

UIScrollView 中的 ICarousel

隐藏的 iCarousel 项目反射效果

当视图第一次消失时,ios icarousel 视图的内容偏移量正在发生变化