2013-12-26 3 views
11

Я создаю «О странице» для своего приложения, и мне нужно вставить на эту страницу очень большой объем текста (текст не будет доступен для редактирования).Форматировать текст в UITextView

Для этого я использую UITextView. Однако мне нужно, чтобы некоторые слова были выделены жирным шрифтом (например, заголовки). Но я не могу этого добиться. UITextView удаляет все мое форматирование.

У меня нет кода для показа здесь, потому что я вставляю весь текст в IB только.

Есть ли обходное решение ?? Например .. Я хочу, чтобы заголовок полужирным шрифтом ..

"О ABC Corporation

gkskgsagdfgfskgfjkgfgljdgsfjgdsjfgdjlsgflgdslgfljdsgfljgdsjlgfljdsgfljdgslfgls. 
jdfjkhdsjlfhdlsfhkldshfkldshflkdhlkfhdklsfhlksdhflkdshflkhdsflkhsdklfhlksdhflkshf 

fjhdshfkldshfkldhsfklhdsklfhlkdshfklhdsklfhdklsfhkdshfklhdsklfhklsdfhkldshfkhdsklf 

fhjdgfkdgsjkfgjkdsgfjkdsgjfgjdkgfjgsjdfgjkdsgfjkgsdjkfgjsdgfjgsdjkfgjksdgfjkgskjfgs" 
+1

Сначала сохраните текстовое свойство textView как 'Attributed', после этого просто выберите текст и измените его стиль и шрифт как хотите (все вы должны сделать это в панели инспектора атрибутов IB) – Nayan

+0

Установили ли вы Rich Text флаг в IB? –

+0

Я не могу найти флагов Rich Text для TextView в IB .. – Shradha

ответ

9

Сначала сохранить свойство текста textView как «Attributed», после этого просто выделите текст и изменить его стиль и шрифт, как вы хотите.

P.S. - Все, что вам нужно сделать это в панели инспектора атрибутов IB.

EDIT:

Для дополнительной информации посетите this link.

Также, это очень хорошо, когда textField имеет текст, который не изменится, например. - как о информации. И когда этот текст вставляется непосредственно в IB, вместо того, чтобы назначать текстовую программу.

0

IOS SDK включает текстовый набор в нем. iOS 7 предлагает возможность улучшить разборчивость текста за счет увеличения веса шрифта, а также возможность установить предпочтительный размер шрифта для приложений, поддерживающих динамический текст. Пользователи будут ожидать, что приложения, написанные для iOS7, будут соблюдать эти настройки, поэтому игнорируйте их на свой страх и риск! Чтобы использовать динамический тип, вам нужно указать шрифты, используя стили, а не явно указывать имя и размер шрифта. С iOS 7 в UIFont добавлен новый метод preferredFontForTextStyle, который создает шрифт для данного стиля, используя настройки шрифта пользователя.

Вот отличный учебник в большом сайте Ray wenderlich text kit tutorial

Если у вас есть время, смотреть WWDC 2013 видеосессия 201

5

Вы можете использовать NSAttributedString, Set Text Font, цвета текста и фона, StrikeThrough и тени и т.д. ..

Атрибутивные строки связывают символы и их атрибуты. Например, NSString объектов, есть два варианта: NSAttributedString и NSMutableAttributedString. Хотя предыдущие версии iOS поддерживали атрибутированные строки, только до iOS 6 такие элементы управления, как кнопки, метки, текстовые поля и текстовые поля, определяли свойство для управления атрибутами. Атрибуты применяются к ряду символов, поэтому вы можете, например, установить атрибут strikethrough только для части строки. Также важно отметить, что шрифт по умолчанию для атрибутов строковых объектов - это 12-точечная версия Helvetica. Имейте это в виду, если вы установите атрибут шрифта для диапазона, отличного от полной строки. Следующие атрибуты могут быть установлены с приписываемыми строками:

NSString *const NSFontAttributeName; 
NSString *const NSParagraphStyleAttributeName; 
NSString *const NSForegroundColorAttributeName; 
NSString *const NSBackgroundColorAttributeName; 
NSString *const NSLigatureAttributeName; 
NSString *const NSKernAttributeName; 
NSString *const NSStrikethroughStyleAttributeName; 
NSString *const NSUnderlineStyleAttributeName; 
NSString *const NSStrokeColorAttributeName; 
NSString *const NSStrokeWidthAttributeName; 
NSString *const NSShadowAttributeName; 
NSString *const NSVerticalGlyphFormAttributeName; 



// Create attributed string 
NSString *str = @"example for underline \nexample for font \nexample for bold \nexample for italics"; 

NSMutableAttributedString *attributedString = 
[[NSMutableAttributedString alloc] initWithString:str]; 

// Add attribute NSUnderlineStyleAttributeName 
[attributedString addAttribute:NSUnderlineStyleAttributeName 
        value:[NSNumber numberWithInt:NSUnderlineStyleSingle] 
        range:NSMakeRange(12, 9)]; 
[attributedString addAttribute:NSUnderlineStyleAttributeName 
        value:[NSNumber numberWithInt:NSUnderlineStyleSingle] 
        range:NSMakeRange(12, 9)]; 

// Set background color for entire range 
[attributedString addAttribute:NSBackgroundColorAttributeName 
        value:[UIColor yellowColor] 
        range:NSMakeRange(0, [attributedString length])]; 


// Create NSMutableParagraphStyle object 
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init]; 
paragraph.alignment = NSTextAlignmentCenter; 

// Add attribute NSParagraphStyleAttributeName 
[attributedString addAttribute:NSParagraphStyleAttributeName 
        value:paragraph 
        range:NSMakeRange(0, [attributedString length])]; 



// Set font, notice the range is for the whole string 
UIFont *font = [UIFont fontWithName:@"Helvetica" size:18]; 
[attributedString addAttribute:NSFontAttributeName 
        value:font 
        range:NSMakeRange(35, 4)]; 



// Set font, notice the range is for the whole string 
UIFont *fontBold = [UIFont fontWithName:@"Helvetica-Bold" size:18]; 
[attributedString addAttribute:NSFontAttributeName 
        value:fontBold 
        range:NSMakeRange(53, 4)]; 

// Set font, notice the range is for the whole string 
UIFont *fontItalics = [UIFont fontWithName:@"Helvetica-Oblique" size:18]; 
[attributedString addAttribute:NSFontAttributeName 
        value:fontItalics 
        range:NSMakeRange(71, 7)]; 



// Set label text to attributed string 
[self.mytextView setAttributedText:attributedString]; 
-7

UITextView - это простой текст, и вы не можете применять разные стили (шрифт, цвет) для разных слов. Предлагаю вам использовать UIWebView. Это html, поэтому его можно создать в стиле.

+4

Это неверно. UITextView поддерживает атрибутString. –

Смежные вопросы