diff --git a/View/MessageTableViewCell.swift b/View/MessageTableViewCell.swift index 38b20ed2..6e5878f7 100644 --- a/View/MessageTableViewCell.swift +++ b/View/MessageTableViewCell.swift @@ -57,32 +57,6 @@ class MessageTableViewCell: BaseTableViewCell { layoutView() - let tap = UITapGestureRecognizer(target: self, action: #selector(tap)) - tap.name = "messageTap" - tap.delegate = self - bodyLabel.addGestureRecognizer(tap) - } - - @objc func tap() { - var view = self.superview - while view != nil, (view as? UITableView) == nil { - view = view?.superview - } - guard let tableView = view as? UITableView else { - return - } - - guard let indexPath = tableView.indexPath(for: self) else { - return - } - tableView.delegate?.tableView?(tableView, didSelectRowAt: indexPath) - } - // 单击手势如果没点击链接,则传递给UITableView didSelectRow - override func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer) -> Bool { - if gestureRecognizer.name == "messageTap", otherGestureRecognizer.name == "UITextInteractionNameLinkTap" { - return true - } - return false } @available(*, unavailable) @@ -153,7 +127,7 @@ class MessageTableViewCell: BaseTableViewCell { } self.bodyLabel.attributedText = text - }.disposed(by: rx.disposeBag) + }.disposed(by: rx.reuseBag) model.date.bind(to: self.dateLabel.rx.text).disposed(by: rx.reuseBag) } } diff --git a/View/MessageTableViewCellViewModel.swift b/View/MessageTableViewCellViewModel.swift index a708e22f..dcfd982d 100644 --- a/View/MessageTableViewCellViewModel.swift +++ b/View/MessageTableViewCellViewModel.swift @@ -19,7 +19,6 @@ class MessageTableViewCellViewModel: ViewModel { let url: BehaviorRelay let date: BehaviorRelay - init(message: Message) { self.message = message @@ -62,13 +61,10 @@ extension MessageTableViewCellViewModel: IdentifiableType { return "\(self.message.id)" } - // 移除掉,因会导致下拉刷新时,新的 MessageTableViewCellViewModel 没有绑定到 cell 上 - // MessageListViewModel 监听了新的 MessageTableViewCellViewModel 的 urlTap ,但cell绑定的是旧的 - // 导致 下拉刷新后, url 点击没反应。 -// override func isEqual(_ object: Any?) -> Bool { -// if let obj = object as? MessageTableViewCellViewModel { -// return self.identity == obj.identity -// } -// return super.isEqual(object) -// } + override func isEqual(_ object: Any?) -> Bool { + if let obj = object as? MessageTableViewCellViewModel { + return self.identity == obj.identity + } + return super.isEqual(object) + } }