iOS小問題之 tableviewCell嵌套TextView,在有url點擊事件沖突

在tableviewCell嵌套TextView,一般在評論功能里用的很多,例如微博。

WechatIMG78.jpeg

這里有個問題,里面一些藍色的地方需要響應(yīng)點擊,而點擊整個cell也需要響應(yīng)點擊事件,其中被TextView捕獲到之后,cell的點擊事件就不被響應(yīng)了。
這里我們需要點擊藍色部分響應(yīng)TextView點擊事件,點其他部分,響應(yīng)cell點擊事件

這里我們可以重寫一下TextView的點擊事件

override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        
        var location = point
        location.x -= self.textContainerInset.left
        location.y -= self.textContainerInset.top
        
        // find the character that's been tapped
        let characterIndex = self.layoutManager.characterIndex(for: location, in: self.textContainer, fractionOfDistanceBetweenInsertionPoints: nil)
        if characterIndex < self.textStorage.length {
            // if the character is a link, handle the tap as UITextView normally would
            if (self.textStorage.attribute(NSLinkAttributeName, at: characterIndex, effectiveRange: nil) != nil) {
                return self
            }
        }
        
        // otherwise return nil so the tap goes on to the next receiver
        return nil
    }

解決了,意思就是如果點擊Textview沒有url的時候,將點擊事件傳到下一層,這樣的話,點擊非藍色部分,cell也可以響應(yīng)點擊事件了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 好奇觸摸事件是如何從屏幕轉(zhuǎn)移到APP內(nèi)的?困惑于Cell怎么突然不能點擊了?糾結(jié)于如何實現(xiàn)這個奇葩響應(yīng)需求?亦或是...
    Lotheve閱讀 59,506評論 51 604
  • 在iOS開發(fā)中經(jīng)常會涉及到觸摸事件。本想自己總結(jié)一下,但是遇到了這篇文章,感覺總結(jié)的已經(jīng)很到位,特此轉(zhuǎn)載。作者:L...
    WQ_UESTC閱讀 6,247評論 4 26
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內(nèi)容...
    i得深刻方得S閱讀 4,975評論 1 9
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,201評論 4 61
  • 我記得,聽你說過,以前你每次來圖書館都會寫一篇簡書,而后你選擇了將它們都給刪去。 未曾有幸看過你的那些文字,以前,...
    忘川行走閱讀 246評論 0 0

友情鏈接更多精彩內(nèi)容