2013-10-12 2 views
0

Я пытаюсь загрузить UITextView с содержимым из экземпляров подкласса NSManagedObject (стихи в приложении для чтения Библии).Изменить размер текста в UITextView на основе содержимого NSString

My UITextView загружается путем повторения стихов в выбранной главе и добавления каждого последовательного стиха.

NSArray *selectedVerses = [[Store sharedStore] versesForBookName:selectedBook 
                ChapterNumber:selectedChapterNum]; 
displayString = @""; 
for (Verse *v in selectedVerses) { 
    NSMutableString *addedString = 
    [NSMutableString stringWithFormat:@"%d %@", [v versenum], [v verse]]; 
    displayString = [NSMutableString stringWithFormat:@"%@ %@", addedString, displayString]; 
} 
NSString *title = [NSString stringWithFormat:@"%@ %@", selectedBook, selectedChapter]; 
[self setTitle:title]; 
[[self readerTextView] setNeedsDisplay]; 
[[self readerTextView] setText:displayString]; 

Приведенный выше код генерирует правильный вид, но допускает только один размер текста для всего UITextView.

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

Я не хочу загружать представление в виде UIWebView.

Любые предложения для этого очень ценятся.

ответ

0

Вы ищете NSAttributedString и NSMutableAttributedString. Вы должны прочитать Introduction to Attributed String Programming Guide. Они обычно похожи на обычные строки, но дополнительно содержат атрибуты с диапазонами, к которым они применяются. Еще один метод, который был бы полезен для вас:

[self readerTextView].attributedText = yourAttributedString; 

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

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