Вы не можете назначить жест привязки определенной строки в обычном UITextView. Вероятно, вы можете установить dataDetectorTypes для UITextView.
textview.dataDetectorTypes = UIDataDetectorTypeAll;
Если вы хотите, чтобы обнаружить только URL, вы можете назначить,
textview.dataDetectorTypes = UIDataDetectorTypeLink;
Проверьте документацию для получения более подробной информации по этому вопросу: UIKit DataTypes Reference. Также проверьте этот Documentation on UITextView
Обновление:
Основываясь на ваш комментарий, проверьте, как это:
- (void)tapResponse:(UITapGestureRecognizer *)recognizer
{
CGPoint location = [recognizer locationInView:_textView];
NSLog(@"Tap Gesture Coordinates: %.2f %.2f", location.x, location.y);
NSString *tappedSentence = [self lineAtPosition:CGPointMake(location.x, location.y)];
//use your logic to find out whether tapped Sentence is url and then open in webview
}
От this используйте:
- (NSString *)lineAtPosition:(CGPoint)position
{
//eliminate scroll offset
position.y += _textView.contentOffset.y;
//get location in text from textposition at point
UITextPosition *tapPosition = [_textView closestPositionToPoint:position];
//fetch the word at this position (or nil, if not available)
UITextRange *textRange = [_textView.tokenizer rangeEnclosingPosition:tapPosition withGranularity:UITextGranularitySentence inDirection:UITextLayoutDirectionRight];
return [_textView textInRange:textRange];
}
Вы можете попробовать с гранулярности таких как, UITextGranularitySentence, UITextGranularityLine и т. д. Проверьте documentation здесь.
, который отобразит ссылку, но этот жест будет реагировать на весь текст. –
Да. Как только вы нажмете на ссылку, она откроет соответствующее приложение на основе схемы URL. – iDev
Да, но с URL-адресом, который он открывает в сафари, с UITapGesture, я надеялся, что он откроется в моем UIWebView –