带有 UIButton 的 UILabel
UILabel with UIButtons
有没有办法让 UILabels
或 UITextViews
与 UIButtons
?
示例 1:"This Car is yellow and has 4 wheels."
其中 Car 是 UIButton
并且可以在句子中的任何位置。
您可以将 UITapGestureRecognizer 分配给标签以检测点击:
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapped:)];
tapGestureRecognizer.numberOfTapsRequired = 1;
[myLabel addGestureRecognizer:tapGestureRecognizer];
myLabel.userInteractionEnabled = YES;
然后在 'labelTapped:' 选择器方法中,使用手势对象计算点击在标签框架内的位置。然后,您必须确定单词在标签中的位置,并查看触摸是否在该 CGRect 中。
我已经使用 UITextView.firstRectForRange 方法通过应用程序完成了此操作。这允许您获取 UITextView 中文本的坐标。
我在文本中使用了按钮和魔术笔。渲染时,我找到了魔术标记并将 UIButtons 放在顶部。例如@"This is the age of the $Train$" 会在标记上放置一个标题为@"Train" 的按钮。
您还可以使用 RectForRange 将每个标记替换为记录位置的彩色文本。然后使用触摸手势查看是否选择了任何矩形。
在您想要的范围内使用带有 link 的 NSAttributedString
,并在 TTTAttributedLabel
中显示它们。然后,只要 link 被点击,您就可以获得回调。
有没有办法让 UILabels
或 UITextViews
与 UIButtons
?
示例 1:"This Car is yellow and has 4 wheels."
其中 Car 是 UIButton
并且可以在句子中的任何位置。
您可以将 UITapGestureRecognizer 分配给标签以检测点击:
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapped:)];
tapGestureRecognizer.numberOfTapsRequired = 1;
[myLabel addGestureRecognizer:tapGestureRecognizer];
myLabel.userInteractionEnabled = YES;
然后在 'labelTapped:' 选择器方法中,使用手势对象计算点击在标签框架内的位置。然后,您必须确定单词在标签中的位置,并查看触摸是否在该 CGRect 中。
我已经使用 UITextView.firstRectForRange 方法通过应用程序完成了此操作。这允许您获取 UITextView 中文本的坐标。
我在文本中使用了按钮和魔术笔。渲染时,我找到了魔术标记并将 UIButtons 放在顶部。例如@"This is the age of the $Train$" 会在标记上放置一个标题为@"Train" 的按钮。
您还可以使用 RectForRange 将每个标记替换为记录位置的彩色文本。然后使用触摸手势查看是否选择了任何矩形。
在您想要的范围内使用带有 link 的 NSAttributedString
,并在 TTTAttributedLabel
中显示它们。然后,只要 link 被点击,您就可以获得回调。