触摸检测时的UITextView内部内的另一个的UITableView的细胞一个UITableView的细胞

问题描述:

我的视图层次是这样的:触摸检测时的UITextView内部内的另一个的UITableView的细胞一个UITableView的细胞

(的UITableViewController) - >的UITableView A - >(小区) - >的UITableView乙 - >(单元) - > UITextView C

表视图B不可滚动,但启用了用户交互。

文本视图C不可滚动,不可编辑,但可选。

事实上,使用情况是:

我使用表格视图中的显示用户的新闻源列表,并使用表格视图B到显示的每条新闻的评论,并使用文本视图C到显示每个评论的内容,这是一个NSAttribtuedString,因为我想让用户的名字在评论中可点击。

现在问题来了。我想让用户点击评论来做一些事情。但是,检测到轻击时总会有延迟。如果你点击得太快,就没有反应。

我试图在表视图A上设置delayContentTouches,但它不起作用。

我也知道单元格内的文本视图将禁用表视图的didSelectCellAtIndexPath委托回调。

所以,有谁能告诉我如何使文本视图C的检测点立即响应?

或者,对于我的用例,是否有更好的实现?

这太复杂了,但我认为你可以通过'hittest'来检查哪个视图被触摸来控制你想要的特定视图。

UILongPressGestureRecognizer *recognizer 
    = [[UILongPressGestureRecognizer alloc] 
       initWithTarget:self action:@selector(handleLongPress:)]; 
recognizer.minimumPressDuration = .5; //seconds 
recognizer.delegate = self; 
[self.collectionView addGestureRecognizer:recognizer]; 

任何机会与长按手势识别器,使它象上述什么?

你只需要在handleLongPress方法中描述你想要的东西。