无法获取tableView didSelect事件

时间:2018-04-17 12:00:18

标签: ios swift textview

我已经搜索得足够多,并尝试了所有我能做到的但未能得到解决方案。

UITextView内有UITableViewCelltextViewnotEditable。对于scrolling enabledfalse属性设置为autoResizing

textView填充了attributedText,该NSAttributedStringhtml转换为hyperlinks,并且有一些link。因此,我将data detector的{​​{1}}属性设置为true,以便textView可以检测链接点击。

现在主要问题是我需要didSelect tableView事件才能将用户带到新屏幕,但由于textView我无法获取该事件链接检测。

这是我填充tableView的代码:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "AdvertisementCell", for: indexPath) as! AdvertisementCell
    cell.delegate = self
    cell.setupCellData(model: advertiseMentModel!)
    return cell
}

Inside Cell子类:

func setupCellData(model : TSLatestDetailsModel) {
     if let desc = model.blurb_link {
     let attrString = NSMutableAttributedString(attributedString: desc.html2AttributedString!)
     attrString.addAttributes([NSAttributedStringKey.font : UIFont(name: "Helvetica-Light", size: 17)!], range: NSMakeRange(0, attrString.length))

    txtVwDesc.attributedText = attrString
    if !isSearchResults {
        txtVwDesc.textContainerInset = UIEdgeInsets(top: 0, left: -5, bottom: -32.5, right: 0)
    } else {
        txtVwDesc.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
    }

    txtVwDesc.linkTextAttributes = [NSAttributedStringKey.foregroundColor.rawValue: Constants.linkColor,


     NSAttributedStringKey.underlineColor.rawValue : UIColor.clear,

     NSAttributedStringKey.font.rawValue : UIFont(name: "Helvetica-Light", size: 17)!]

     layoutIfNeeded()

    }
}

请说明解决问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

确保以下内容:您已将tableview委托设置为self,并且已为单元格,内容视图和文本视图启用了用户交互,并且已将该类分配给属性检查器中的tableView。

答案 1 :(得分:0)

尝试创建一个背景清晰的UIview,其中包含您不想点击的文字。它仍会检测到你的didSelectRow