Вопрос

Кто-нибудь знает, что заставило Apple отказаться от NSAttributedString при превращении AppKit в UIKit?

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

В строке можно использовать смешанные атрибуты шрифта — это просто чертовски много работы, чтобы добиться чего-то подобного, что было возможно с помощью нескольких строк кода с NSAttributedString.

Кроме того, выполнение всего этого дополнительного кода рисования самостоятельно делает ячейки табличного представления очень тяжелыми и серьезно снижает производительность.

У кого-нибудь есть идеи?Кто-нибудь из гениев работает над альтернативой NSAttributedString с открытым исходным кодом?

Это было полезно?

Решение

NSAttributedString теперь доступен на iPhone начиная с бета-версии 4.0.

Другие советы

Текущий рекомендуемый в документации способ сделать это — использовать UIWebView.

Не знаю, актуально ли это для вас, но Джо Хьюитт опубликовал свою три20 тем временем библиотека, которая содержит TTStyledText и TTStyledTextLabel чтобы соответствовать вашим потребностям.

Боюсь, вам придется катиться самостоятельно.Если вы увязли при рисовании таблиц, я бы, вероятно, переключился на необработанные вызовы Quartz;попробуйте сбросить все ваши рисунки в одно представление и выполнить в нем все сложные строковые рисунки.NSAttributedString удобен, но я не думаю, что он использует столько специального AppKit-mojo, чтобы добиться гораздо большей производительности, чем вызовы прямого рисования строк.

Ответ выше указывает, что NSAttributedString доступен в OS 4.0 и выше, но согласно документации он доступен в версии 3.2:

Справочник класса NSAttributedString
Наследует от НСОбъект
Соответствует NSCoding, NSCopying, NSmutableCopying, NSObject (NSObject)
Рамки /Система/Библиотека/Frameworks/Foundation.framework
Доступность Доступно в iPhone OS 3.2 и более поздних версиях.
Сопутствующее руководство Руководство по программированию атрибутных строк
Объявлено в НСАтрибутедстринг.х

Другой подход — использовать UIWebView с HTML.Или, если вы осмелились, вы можете использовать недокументированный метод setHTML в UITextView для установки небольших фрагментов форматированного текста...

Мне кажется, это больше похоже на будущее поддержки форматированного текста, на некий способ использовать Webkit для вывода форматированных строк.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top