有没有办法让UILabels
或UITextViews
与UIButtons
合作?
示例1:“此汽车为黄色,有4个轮子。”
汽车是UIButton
,可以在句子中的任何位置。
答案 0 :(得分:1)
使用所需范围内的NSAttributedString
链接,并将其显示在TTTAttributedLabel
中。然后,只要点击链接,您就可以收到回叫。
答案 1 :(得分:0)
您可以为标签指定UITapGestureRecognizer以检测点按:
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapped:)];
tapGestureRecognizer.numberOfTapsRequired = 1;
[myLabel addGestureRecognizer:tapGestureRecognizer];
myLabel.userInteractionEnabled = YES;
然后在'labelTapped:'选择器方法中,使用手势对象计算标签框内的点按位置。然后,您必须确定标签中单词的位置,并查看触摸是否在CGRect中。
答案 2 :(得分:0)
我使用UITextView.firstRectForRange方法使用app完成了这项工作。这允许您获取UITextView中的文本坐标。
我在文本中使用了按钮和魔术标记。渲染时,我找到了魔术标记并将UIButtons放在顶部。例如@“这是$ Train $的年龄”会在标记处放置一个标题为@“Train”的按钮。
您还可以使用RectForRange用记录位置的彩色文本替换每个标记。然后使用触摸手势查看是否选择了任何矩形。