gpt4 book ai didi

ios - UITableViewCell 上的 UITextView

转载 作者:行者123 更新时间:2023-11-29 02:17:54 25 4
gpt4 key购买 nike

这里有个棘手的问题。

UITextView 是 `UITableViewCell 的 subview 。

UITextView 接收触摸事件并且 tableView: didSelectRowAtIndexPath: 没有被调用。

我知道如果我将 userInteraction:NO 设置为 UITextView,我可以获得 tableView 的事件。但是,UITextView 的内容是 NSAttributedString 并且该字符串具有 NSLinkAttributeName 属性。如果我将 userInteraction 设置为 false,我将无法获取 textView:shouldInteractWithURL:inRange:

有什么好的方法可以同时启用这两个事件吗?

最佳答案

您可以创建 UITextViewsubClass 并添加两个变量

@property (nonatomic) NSInteger row;
@property (nonatomic) NSInteger section;

将包含节号和行号。使用这些属性,您可以使用 delegation/KVO 告诉 viewController (row:x & section:y) 中的单元格已被选中。

编辑

此编辑更新自@Daniel Galasko 评论。

解决这个问题的更好方法是使用 indexPathForRowAtPoint: 方法,如下所示:

将 viewController 设置为 UITextView 的委托(delegate),并在 dekegate 方法中

- (void)textViewDidBeginEditing:(UITextView *)textView
{
CGPoint position = [textView convertPoint:CGPointZero toView: <yourtableView> ];
NSIndexPath *indexPath = [<your tableView> indexPathForRowAtPoint: position];
}

关于ios - UITableViewCell 上的 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28539004/

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