Мне нужно найти пиксельную рамку для разных диапазонов в текстовом виде. Я использую - (CGRect)firstRectForRange:(UITextRange *)range;
, чтобы сделать это. Однако я не могу узнать, как создать UITextRange
.Создать UITextRange из NSRange
В основном это то, что я ищу:
- (CGRect)frameOfTextRange:(NSRange)range inTextView:(UITextView *)textView {
UITextRange*range2 = [UITextRange rangeWithNSRange:range]; //DOES NOT EXIST
CGRect rect = [textView firstRectForRange:range2];
return rect;
}
Apple, говорит, что один имеет подкласс UITextRange
и UITextPosition
для того, чтобы утвердить протокол UITextInput
. Я этого не делаю, но я все равно пробовал, следуя примеру кода документа и передавая подкласс firstRectForRange
, что привело к сбою.
Если есть более простой способ добавить в текстовое изображение разные цвета UILables
, скажите, пожалуйста. Я попытался использовать UIWebView с content editable
, установленным в TRUE, но я не люблю общаться с JS, и раскраска - единственное, что мне нужно.
Заранее спасибо.
У вас должен быть подкласс 'UITextRange', чтобы его можно было установить. Единственный способ установить свойства 'UITextRange' - получить доступ к ним в подклассе. Он определяет свойства 'start' и' end' как свойства, но их можно установить внутри, ссылаясь на '_start' и' _end'. – Justin
Да, но как я могу создать UITextPosition, у которого вообще нет каких-либо свойств? 0.o Если я также подклассифицирую его, как «firstRectForRange» знает, какое свойство использовать из моего подкласса UITextPosition? –
Это то, чего я не знаю. Все, что я знаю об этом, это то, что вы должны подклассифицировать свойства 'readonly'. Вот почему это комментарий вместо ответа. – Justin