1

我使用UITextView附加到 a 的 a UITableViewCell,其配置如下所示:

cell.topicAndDescriptionTextView = [[UITextView alloc] initWithFrame:frame];
cell.topicAndDescriptionTextView.tag = 1;
cell.topicAndDescriptionTextView.attributedText = attrText;    
cell.topicAndDescriptionTextView.scrollEnabled = NO;
cell.topicAndDescriptionTextView.editable = NO;
cell.topicAndDescriptionTextView.textContainer.lineFragmentPadding = 0;
cell.topicAndDescriptionTextView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0);
cell.topicAndDescriptionTextView.backgroundColor =[UIColor clearColor];
[cell.topicAndDescriptionTextView setUserInteractionEnabled:YES];
cell.topicAndDescriptionTextView.dataDetectorTypes = UIDataDetectorTypeAll;

现在我想使用文本工具包功能来检测我的属性文本(http://www.raywenderlich.com/48001/easily-overlooked-new-features-ios-7#textViewLinks)中自定义链接的点击并- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath识别如果客户单击UITableViewCell没有自定义链接的某处,则向下钻取。

不幸[UITextView setUserInteractionEnabled:YES]的是,让 textview 吞下了所有的东西。实现这一目标的最佳方法是什么?我想编写一个自定义UITextView类,并使用UITextView委托,但是我怎样才能确定超类是否已经处理了链接上的新闻并阻止向下钻取?

谢谢,

4

2 回答 2

1

我会尝试覆盖 hitTest 并且仅在返回的视图是用于链接按钮的视图时才返回命中视图。在其他情况下返回零。然后将触摸传递给表格视图,并且滚动继续工作。

于 2014-06-18T20:01:17.383 回答
0

我找到了解决方案。我创建了我的自定义 UITextView 类并覆盖了 touchesBegan。只有在 UITextView 中没有点击链接时才会调用 Touches Began。我玩了hitTest,但是一直调用hitTest,我无法确定UITextView中是否触摸了链接。

于 2014-06-19T19:50:34.093 回答