NSAttributedString решил поделиться своим решением
Выход iOS 6 дал в руки разработчиков удобный и быстрый инструмент для работы со строками и ее стилями (атрибутами). Теперь стало возможным с тексте , к примеру, UILabel вывести текст, который имеет выделения цветом или другим шрифтом. Так NSAttributedString пришел в массы.
Выход iOS 7 значительно расширил набор атрибутов доступных разработчикам и еще больше приблизил момент, когда iOS получит возможность работать со строками а-ля RTF.
Но как обычно водится, в бочку меда добавили целую кружку дегтя.
Присвоить какой-либо атрибут фрагменту строки оказалось делом муторным и совершенно неудобным. Пришлось искать пути решения.
Выбор остановился на написании маленького модуля, который будет обрабатывать строку с подобием BB-кодов и возвращать готовую NSAttributedString.
Все что нужно сделать, это подключить к своему проекту 2 файла из архива (JCAString.h и JCAString.m) и там гже это необходимо, просто указать #import «JCAString.h»
Реализация выполнена по шаблону одиночки, что значительно упрощает использование обработчика.
Пример использования
[[JCAString sharedObject] setStyleList:@{
@"b" : @{NSFontAttributeName : [UIFont boldSystemFontOfSize: 12.0]},
@"i" : @{NSFontAttributeName : [UIFont italicSystemFontOfSize: 12.0]}
}
];
// ........
label1.attributedText = [[JCAString sharedObject] parseStringWithStyle:@"- Ваши недостатки?\n[b]
- Неразговорчив.[/b]\n[i]- Ваши достоинства?[/i]\n- Неболтлив."];
Что умеет обработчик
1. Поддерживает произвольное количество тэгов с любой сложностью атрибутов.
2. Код очень прост, что позволяет просто реализовать дополнительный функционал.
Пользуйтесь. Скачать обработчик с примером использования