当 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 作为子视图时无法滑动的主要内容,如果未能解决你的问题,请参考以下文章