3

我有一个标准UITableView,其中填充了自定义单元格,这些单元格使用UIImageView. 我可以点击会触发该UITableView's方法的图像:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

但是我想在这些图像上启用捏缩放,这需要嵌套UIImageView在 a 中UIScrollView,所以这就是我所做的。它看起来像这样:

@interface SMLargeGalleryCell : UITableViewCell
@property (strong, nonatomic) UIImageView *assetImageView;
@property (strong, nonatomic) UIScrollView *scrollView;
@end

但是,现在当我点击图像时,UITableView不再收到对 didSelectRowAtIndexPath. 如果我点击单元格之间,该事件将触发。问题似乎UIScrollView是没有转发事件。

我怎样才能做到这一点?
我正在考虑这样的事情(尽管我知道这很荒谬):

-(IBAction)myScrollViewAction:(id)sender{
   self.scrollView.parentTableView didSelectRowAtIndexPath.....;
}

我在这里想念什么?
这与响应者链有关吗?

4

1 回答 1

0

请参阅我对似乎在结构上与您的问题相似的问题的回答:Horizo​​ntal UIScrollView have vertical UIScrollViews inside - how to prevent scrolling of internal scroll views when scrolling outer Horizo​​ntal view?

不久,我的解决方案是破解两者:

1) UIGestureRecognizerDelegate 协议shouldRecognizeSimultaneouslyWithGestureRecognizer

使用它,您可以同时在表格视图和单元格上捕捉手势。

2) 原生 UIScrollView 的panGestureRecognizer

由于 UITableView 是 UIScrollView 的子类,因此它也应该具有panGestureRecognizer(可能还有其他一些)。

看看我使用的模式 - 我相信你可以将它转换为在你的情况下使用。

于 2013-04-18T21:47:44.610 回答