Отображать файл .RTF на устройствах iOS БЕЗ UIWebView - initWithRTF на iOS? - PullRequest
2 голосов
/ 04 октября 2011

Можно отобразить файл .RTF в iOS, используя UIWebView (см. здесь ).Как можно напрямую «рендерить» файл .RTF на пользовательский слой, не завися от UIWebView?

Я отображаю табличное представление с пользовательским UITableViewCell.Ячейка имеет следующий формат:

Cell Title
Cell SubTitle
/
|
| Variable length RTF content
|
\

Содержимое RTF поступает непосредственно из серии файлов, поставляемых с приложением.Исторически я мог конвертировать RTF в HTML и использовать UIWebView.Благодаря все большему количеству пользовательского контента и дополнительным функциям, позволяющим обмениваться контентом между пользователями мобильных устройств и компьютеров, предпочтительным форматом файла является .RTF.

. В MacOS вы можете использовать (id)initWithRTF:(NSData *)data documentAttributes:(NSDictionary **)dict для создания NSAttributedString,Что будет эквивалент на iOS?Это вообще возможно?

Ответы [ 3 ]

4 голосов
/ 04 октября 2011

OmniGroup имеет класс для чтения и записи RTF-файлов в NSAttributedStrings, но будьте готовы передать много зависимостей.

https://github.com/omnigroup/OmniGroup/tree/master/Frameworks/OmniUI/iPad/RTF

NSAttributedStrings можно затем нарисовать с помощью CoreText.

1 голос
/ 04 октября 2011

Существует проект с открытым исходным кодом , проект для замены отсутствующего initWithHTML, но, к сожалению, я не видел что-то подобное для initWithRTF.

Еще одно решение - самостоятельно проанализировать RTF - в Mono System.Windows.Forms был такой синтаксический анализатор (в C #), но он не так прост, как plug-n-play.

1 голос
/ 04 октября 2011

Нет стандартного просмотра расширенного текста, кроме UIWebView.Вам придется создать его самостоятельно или найти сторонний инструмент.Я не знаком со многими парсерами RTF для iOS.UIWebView, как бы это ни было проблематично, обычно вы лучше всего подходите к этому.

...