12 objective-c uilabel ios uitapgesturerecognizer
我是iOS开发的新手.我不知道是否已经问过这个问题,我尝试在stackoverflow上搜索解决方案,但没有得到任何结果.
题 :
我有一个UILabel叫myLabel文字:"点击这里继续"
现在问题是我想在用户点击"点击"时执行操作.
我知道如何使用UITapGestureRecognizer,但它对整体有所回应UILabel.是否可以只检测用户何时只点击字符串"Click"?
您可以检查触摸的位置,看它是否在"单击"一词上.这可能不完全准确,如果您更改标签中的文本可能会中断.
您可以做的是首先使用以下方法获取点击的位置:
CGPoint location = [gesture locationInView:gesture.view];
Run Code Online (Sandbox Code Playgroud)
这会在您的视图中获取手势的位置.
完成此操作后,您可以使用"Click"字样的大小进行硬编码,也可以为手势标签创建相同的标签以获得大小,例如:
UILabel *sizeLabel = //create label with same font.
[sizeLabel setText:@"Click"];
float width = [sizeLabel sizeThatFits:CGSizeMake(MAXFLOAT,MAXFLOAT)].width;
Run Code Online (Sandbox Code Playgroud)
您也可以在创建实际标签时执行此操作,并将此宽度存储在静态变量中,这样您只需执行一次,而无需创建额外标签(即将实际标签的文本设置为@"单击",获取宽度,然后将其设置为真实文本".
获得宽度,您和水龙头的位置后,您可以通过比较来检查是否点击了"点击"一词:
if (location.x < width) {
//Put your tap code in here.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7464 次 |
| 最近记录: |