ios – 如何检测UILabel的特定部分(子串)上的点击?

前端之家收集整理的这篇文章主要介绍了ios – 如何检测UILabel的特定部分(子串)上的点击?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是iOS开发的新手.我不知道这个问题是否已经被问到了,
我试图在stackoverflow上搜索解决方案,但没有得到任何结果.

题 :

我有一个名为myLabel的UILabel文本:“点击这里继续”

现在问题是我想在用户点击“点击”时执行一个操作.

我知道如何使用UITapGestureRecognizer,但它响应整个UILabel.是否可以检测用户何时点击字符串“点击”?

解决方法

您可以检查触摸的位置,看看它是否单词“点击”.这可能不完全准确,但如果更改标签中的文本,则可能会中断.

您可以做的是首先使用以下方式获取点击的位置:

CGPoint location = [gesture locationInView:gesture.view];

这将在您的视图中获取手势的位置.

一旦你有了这个,你可以有大小的单词“点击”硬编码,或者你可以创建一个相同的标签到您的手势标签获得的大小,如:

UILabel *sizeLabel = //create label with same font.
[sizeLabel setText:@"Click"];
float width = [sizeLabel sizeThatFits:CGSizeMake(MAXFLOAT,MAXFLOAT)].width;

您也可以在创建实际标签并将此宽度存储在静态变量中时执行此操作,以便您只需执行一次,而不必创建一个额外的标签(即将真实标签的文本设置为@“单击“,获取宽度,然后将其设置为真实文本).

一旦您有宽度,您和点击的位置,您可以通过比较点击“点击”单词:

if (location.x < width) {
    //Put your tap code in here.
}

猜你在找的iOS相关文章