найти расположение {x, y} текста в uilabel

У меня есть строка, поступающая с сервера, которая отображается на мультилинии UILabel. Именно в этой строке я идентифицирую некоторую конкретную подстроку. Я хочу поместить кнопку в эту подстроку (кнопка будет подпредставлением UILabel). Для этого мне нужны подстроки координат. Я прошел через это, но я не в состоянии понять это. Предположим, что моя полная строка - abc, 567-324-6554, Нью-Йорк. Я хочу, чтобы 567-324-6554 отображался на кнопке, для которой мне нужны ее координаты. Как использовать ссылку выше, чтобы найти координаты подстроки? Спасибо,

 freind14 февр. 2012 г., 09:46
UILabel является мультилинейным

Ответы на вопрос(1)

UILabel нет никаких методов для этого. Вы можете сделать это сUITextViewпотому что он реализуетUITextInput протокол, Вы хотите установить текстовое представлениеeditable собственность наNO.

Что-то вроде этого непроверенного кода должно работать:

- (CGRect)rectInTextView:(UITextView *)textView stringRange:(CFRange)stringRange {
    UITextPosition *begin = [textView positionFromPosition:textView.beginningOfDocument offset:stringRange.location];
    UITextPosition *end = [textView positionFromPosition:begin offset:stringRange.length];
    UITextRange *textRange = [textView textRangeFromPosition:begin toPosition:end];
    return [textView firstRectForRange:textRange];
}

Это должно вернутьCGRect (в системе координат текстового представления), которая покрывает подстроку, указаннуюstringRange, Вы можете установить рамку кнопки на этот прямоугольник, если сделаете кнопку подпредставлением текстового представления.

Если подстрока занимает несколько строк, прямоугольник будет покрывать только первую строку.

 freind14 февр. 2012 г., 10:10
я хочу найти х и у этой строки "***" в UITextView, вы можете мне помочь, спасибо брат
 freind14 февр. 2012 г., 10:20
я пытаюсь сделать это, но его ошибка CGRectvarf = [self rectInTextView: select4 stringRange: @ "**«];
 rob mayoff14 февр. 2012 г., 10:13
Прочитайте мой ответ.
 rob mayoff14 февр. 2012 г., 10:24
Вам нужно пройтиCFRangeнеNSStringкакstringRange параметр. Возможно, вы найдетеNSString«srangeOfString: метод полезен.
 rob mayoff14 февр. 2012 г., 10:40
Что касается «как я называю эту функцию», я не знаю, какую функцию вы имеете в виду. Если ты имеешь ввидуrangeOfString:, вы читаете руководство или смотрите один из большого количества примеров файлов кода, которые появляются при вводеrangeOfString в поле поиска наdeveloper.apple.com, Делать свою работу!

Ваш ответ на вопрос