ana*_*ali 1 iphone cocoa-touch ios ios7
当用户点击Uitextview(或UIlabel)中的某些格式化/特定单词时,如何执行某些特定操作(如显示模式或推动控制器)?我听说过NSAttributedString,但我不知道如何使用它.
我想要的是与facebook应用程序相同的结果.当您单击名称时,它会推送另一个控制器:

如果你能给我一些提示,教程或任何你想要的东西.
将手势识别器添加到UITextView:
//bind gesture
[_yourTextView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:delegate action:@selector(didReceiveGestureOnText:)]];
Run Code Online (Sandbox Code Playgroud)
然后用以下代码检查didReceiveGestureOnText中单击的单词:
+(NSString*)getPressedWordWithRecognizer:(UIGestureRecognizer*)recognizer
{
//get view
UITextView *textView = (UITextView *)recognizer.view;
//get location
CGPoint location = [recognizer locationInView:textView];
UITextPosition *tapPosition = [textView closestPositionToPoint:location];
UITextRange *textRange = [textView.tokenizer rangeEnclosingPosition:tapPosition withGranularity:UITextGranularityWord inDirection:UITextLayoutDirectionRight];
//return string
return [textView textInRange:textRange];
}
Run Code Online (Sandbox Code Playgroud)
编辑
这就是你的didReceiveGestureOnText方法应该是这样的:
-(void)didReceiveGestureOnText:(UITapGestureRecognizer*)recognizer
{
//check if this is actual user
NSString* pressedWord = [delegate getPressedWordWithRecognizer:recognizer];
}
Run Code Online (Sandbox Code Playgroud)
然而,这将导致你在检查字符串之后真的很酷(因为它很慢).
| 归档时间: |
|
| 查看次数: |
5938 次 |
| 最近记录: |