如何实现像滚动和细胞攻丝行为的UITableView?
问题描述:
在UITableView中,您可以点击并按住表格单元格并取消点击并继续滚动,如果您移动手指。这怎么能用UIScrollView完成一个子视图?我能够做到这一点,所以你可以滚动,你可以点击子视图,但是后者的行为有问题 - 如果在轻敲和按住的同时移动手指,使滚动视图继续滚动。如何实现像滚动和细胞攻丝行为的UITableView?
答
我假设您在子视图上使用了UITapGestureRecognizer
。滚动视图使用UIPanGestureRecognizer
进行滚动。除非泛识别器失败,否则只需告诉水龙头识别器不要识别。
如果您靶向的iOS 5,这是很简单的:
[self.tapRecognizer requireGestureRecognizerToFail:self.scrollView.panGestureRecognizer];
如果您的iOS靶向的是旧版本,旧版本的UIScrollView
没有panGestureRecognizer
财产。相反,你必须通过滚动视图gestureRecognizers
阵列搜索:
for (UIGestureRecognizer *recognizer in self.scrollView.gestureRecognizers) {
if ([recognizer isKindOfClass:[UIPanGestureRecognizer class]])
[self.tapRecognizer requireGestureRecognizerToFail:recognizer];
}
我发现我没有打电话给requireGestureRecognizerToFail和滚动视图仍然工作的声像。任何想法,当这个电话是必要的? – Boon 2012-02-19 23:45:56