【发布时间】:2014-07-19 19:17:09
【问题描述】:
我已经使用UIPanGestureRecognizer 设置了我的UICollectionViewCell,它应该像您在UITableViewCells 中经常看到的那样工作,它显示了内容下方的控件。我的问题应该同时适用于UICollectionViews 和UITableViews。
我让它工作,以便单元格中的水平平移与UICollectionView 的垂直平移同时工作。只需实现UIGestureRecognizer 的此委托方法即可启用:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
这允许它们同时工作,但它也有副作用,当我在UICollectionView 中垂直平移时,任何轻微的水平移动都会触发我在启动时碰巧触摸的单元格中的gestureRecognizer垂直平移,从而显示底层控件。我不想要这个。
Mail 完美地处理了这个问题,因此 fx. UITableView 中的垂直平移,禁用单元格中的任何水平平移手势,反之亦然。
我可以通过正确设置手势识别器以简单的方式实现这一目标吗?
我想避免必须管理视图之间状态的解决方案(“滚动视图正在拖动”、“单元格正在拖动”等)。
【问题讨论】:
标签: ios objective-c uitableview uicollectionview uigesturerecognizer