我有一个NSTextAttachment,其中一个图像位于UILabel中,我想在单击此附件时执行自定义行为。

UITextViewDelegate提供了一种方便的方法

textView:shouldInteractWithTextAttachment:inRange:


但是仅当我使用UITextView时才可以使用。

如果我使用UILabel有什么解决方案吗?

谢谢!

最佳答案

文本附件成为模型的一部分,并被视为字符,因此请尝试在附件范围内添加链接。
像这样:

NSTextAttachment *attachment = [[NSTextAttachment alloc] initWithData:nil ofType:nil];
attachment.image = [UIImage imageNamed:@"myImage"];

NSAttributedString *imageString = [NSAttributedString attributedStringWithAttachment:attachment];
NSMutableAttributedString *mutableImageString = [imageString mutableCopy];
[mutableImageString addAttribute:NSLinkAttributeName value:@"http://stackoverflow.com" range:NSMakeRange(0, mutableImageString.length)];

10-08 11:47