【问题标题】:Pass events from (UITableViewCell->UIScrollView) to owning UITableView将事件从 (UITableViewCell->UIScrollView) 传递给拥有 UITableView
【发布时间】:2013-04-11 20:41:37
【问题描述】:

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

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

但是我想在这些图像上启用捏缩放,这需要将UIImageView 嵌套在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.....;
}

我在这里错过了什么?
这与响应者链有关吗?

【问题讨论】:

    标签: ios objective-c uitableview uiscrollview


    【解决方案1】:

    请参阅我对这个问题的回答,该回答似乎在结构上与您的问题相似:Horizontal UIScrollView having vertical UIScrollViews inside - how to prevent scrolling of inner scroll views when scrolling outer horizontal view?

    我的解决方案是同时破解这两个:

    1) UIGestureRecognizerDelegate 协议shouldRecognizeSimultaneouslyWithGestureRecognizer

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

    2) 原生 UIScrollView 的 panGestureRecognizer

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 2022-12-16
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      相关资源
      最近更新 更多