gpt4 book ai didi

ios - UITableViewCell 内的 UITextView - 如果不单击链接,则触摸通过

转载 作者:行者123 更新时间:2023-12-02 07:38:11 25 4
gpt4 key购买 nike

我试图利用 UITextView 与 TableViewCell 内的数据检测器类型的优势,而 TableViewCell 本身是可点击的。

唯一的事情是,我需要 UITextView 的链接可单击,因此 userInteractionEnabled = YES,不幸的是,这将阻止任何触摸进入 UITableViewCell。

当然,UITextView 无法编辑,我还对其进行了子类化,拒绝它成为第一响应者,以避免选择其中的文本。

我唯一需要的是检测用户是否触摸 UITextView,检查它是否是链接,如果是则打开链接,否则将触摸重定向到 UITableViewCell。

知道如何做到这一点吗?

很像 Twitter 应用程序(我们可以单击行,或单击链接...)

最佳答案

我知道这个问题已经被问过一段时间了,但是对于某些应用程序来说,想要拥有带有 UIDataDetectors 的可点击单元格,这种行为仍然是非常需要的。

这是我为适应 UITableView 中的这种特定行为而编写的 UITextView 子类

-(id) initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.delegate = self;
}
return self;
}

- (BOOL)canBecomeFirstResponder {
return NO;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *obj = self;

do {
obj = obj.superview;
} while (![obj isKindOfClass:[UITableViewCell class]]);
UITableViewCell *cell = (UITableViewCell*)obj;

do {
obj = obj.superview;
} while (![obj isKindOfClass:[UITableView class]]);
UITableView *tableView = (UITableView*)obj;

NSIndexPath *indePath = [tableView indexPathForCell:cell];
[[tableView delegate] tableView:tableView didSelectRowAtIndexPath:indePath];
}

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {
return YES;
}

您可以修改它以满足您的需要...

希望它对某人有帮助。

关于ios - UITableViewCell 内的 UITextView - 如果不单击链接,则触摸通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com