Как подчеркнуть текст в UITextView
. Я понимаю, что мне нужно будет создать подкласс UITextView
, но что будет в drawRect:
?
Спасибо.
Как подчеркнуть текст в UITextView
. Я понимаю, что мне нужно будет создать подкласс UITextView
, но что будет в drawRect:
?
Спасибо.
Попробуйте использовать NSAttributedString
следующим образом и установите в UITextView
. Это работает для iOS6.
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:@"Some String"];
[attString addAttribute:(NSString*)kCTUnderlineStyleAttributeName
value:[NSNumber numberWithInt:kCTUnderlineStyleSingle]
range:(NSRange){0,[attString length]}];
Для получения дополнительной информации о NSAttributedString
проверьте Как вы используете NSAttributedString?
Например: -
textView.attributedText = attString;
Из документация по яблоку в UITextView,
В iOS 6 и более поздних версиях этот класс поддерживает несколько стилей текста через использование свойства attributedText. (Стилированный текст не поддерживается в более ранние версии iOS.) Установка значения для этого свойства вызывает текстовое представление, чтобы использовать информацию о стиле, указанную в атрибуте строка. Вы все еще можете использовать шрифт, textColor и textAlignment свойства для установки атрибутов стиля, но эти свойства применимы ко всем текста в текстовом виде.
Текст в стиле, отображаемый текстовым представлением.
@property(nonatomic,copy) NSAttributedString *attributedText
Обсуждение: По умолчанию это свойство равно нулю. Присвоение нового значения этому свойству также заменяет значение свойства text теми же строковыми данными, хотя и без какой-либо информации форматирования. Кроме того, присвоение нового значения обновляет значения в свойствах font, textColor и textAlignment, чтобы они отображали информацию о стиле, начиная с позиции 0 в атрибутной строке.
Если вы хотите не включать CoreText, вы можете использовать атрибутную строку с этим атрибутом:
@{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)}
Если это статический текст, вы можете подчеркнуть его в Interface Builder. Обязательно сделайте текст "Attributed" первым, выбрав "Attributed" в раскрывающемся меню:
textViewMessage.linkTextAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor], NSUnderlineStyleAttributeName: [NSNumber numberWithInt:NSUnderlineStyleSingle]};
Если вы хотите отформатировать текст (подчеркнутые слова, ссылки, цветные слова...) Я предлагаю вам использовать FTCoreText
-(IBAction)underline:(id)sender
{
NSDictionary *underlineAttribute = @{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)};
texts.attributedText = [[NSAttributedString alloc] initWithString:texts.text
attributes:underlineAttribute];
}
Если вы используете iOS 6, вы можете использовать атрибут attributedText
UITextView. Примените форматирование подчеркивания к тексту. Вы также можете установить свойство typingAttributes
для обеспечения того, чтобы текст, который пользователь вводит, имеет определенный набор форматирования, если вы хотите.
Я рекомендую вам использовать CoreText. Основное учебное пособие здесь, на raywenderlich.
Я рекомендую вам использовать MFUnderlinedTextView, это будет полезно.
Вы не можете использовать "kCTUnderlineStyleAttributeName" или "kCTUnderlineStyleSingle" Теперь вы должны сделать это следующим образом:
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:@"Text"];
[attString addAttribute:NSUnderlineStyleAttributeName
value:@(NSUnderlineStyleSingle)
range:(NSRange){0,[attString length]}];
Чтобы подчеркнуть текст, вам нужно перейти туда, где вы можете выбрать опции копирования, вырезания и удаления, теперь есть больше параметров, таких как B/I/U (полужирный, курсив, подчеркивание). Выберите этот вариант, и это все. И чтобы это не удалось, снова выберите опцию подчеркивания.