I\'m having problems setting up the TTTAttributedLabel within my project.
I have set the protocol delegate in my header file
@interface TwitterFeedContr
One possible cause for the same problem (similar to Joeran's answer) is if you have a custom UITapGestureRecognizer
on the view that keeps the TTTAttributedLabel
's tap gesture from being called. In my case I needed to block the tap gesture's action from being called if the tap was on a link, so cancelsTouchesInView
was not enough.
My solution: blocking the tap gesture from being recognized at all.
In viewDidLoad
:
tapGesture.delegate = self
And below the actual implementation of my class:
extension MyView: UIGestureRecognizerDelegate {
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
if gestureRecognizer == self.tapGesture {
let view = gestureRecognizer.view
let location = gestureRecognizer.location(in: view)
let subview = view?.hitTest(location, with: nil)
// test if the tap was in a TTTAttributedLabel AND on a link
if let ttt = subview as? TTTAttributedLabel, ttt.link(at: gestureRecognizer.location(in: ttt)) != nil {
return false
}
}
//else
return true
}
}