Удобный NSAttributedString (JCAString)

В связи с участившимися вопросами по работе с
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. Код очень прост, что позволяет просто реализовать дополнительный функционал.

Пользуйтесь. Скачать обработчик с примером использования

Добавить комментарий


два − = один

Ваш e-mail не будет доступен другим пользователям. Все поля обязательны для заполнения.