将点击事件传递到子视图iOS

时间:2015-04-03 08:31:13

标签: ios objective-c uitapgesturerecognizer tttattributedlabel

我有一个TTTAttributed标签,可以自己检测链接,我有一个轻击手势,可以执行某些操作。

问题是,当我有一个轻击手势,然后它无法打开链接它只能通过点击手势执行操作但我想如果文本是链接类型然后我的点击手势转发水龙头到TTTAttributed标签的链接检测。

您的努力真的很受欢迎。提前谢谢。

2 个答案:

答案 0 :(得分:1)

label.enabledTextCheckingTypes = NSTextCheckingTypeLink; // Automatically detect links when the label text is subsequently changed
label.delegate = self; // Delegate methods are called when the user taps on a link (see `TTTAttributedLabelDelegate` protocol)
label.text = @"Google it! (https://www.google.co.in/)"; // Repository URL will be automatically detected and linked
NSRange range = [label.text rangeOfString:@"Google"];
[label addLinkToURL:[NSURL URLWithString:@"http://google.com/"] withRange:range]; // Embedding a custom link in a substring

设置TTTAttributed标签的委托,当用户点击标签时,将调用其委托方法。

(void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url

使用此委托方法处理您的事件。

答案 1 :(得分:1)

在您的点击手势识别器委托方法中检查[UITapGestureRecognizer state]属性。根据{{​​1}}值,在您完成自定义点击手势处理后,将事件传递给state对象的以下触摸委托方法:

TTTAttributedLabel

这应该注意执行- touchesBegan:withEvent: - touchesMoved:withEvent: - touchesEnded:withEvent: - touchesCancelled:withEvent:类的默认行为。