Я - новый objective-c/iPhone разработчик и задаюсь вопросом, существует ли какой-либо способ применить форматирование для отправки текстовых сообщений в строке в plist?
У меня есть plist, который является массивом словарей. Каждый словарь содержит несколько строковых объектов, некоторые из которых я хотел бы содержать списки и абзацы информации. Я называю эти строки и отображаю их через маркировки в UI.
Подобный использованию <лития> и </литий> или <b> и </b> в HTML, я хотел бы смочь указать части строки, которая будет отформатирована, при отображении как маркированный список, полужирный, курсивный, и т.д. Как это могло быть выполнено?
С помощью некоторых добрых пользователей на этом сайте я смог встроить <литий> и <b> теги в xml plist файл, однако это просто привело к литеральной печати тегов на экране.
Заранее спасибо за Вашу справку!!
Это не похоже на то, что тот факт, что ваши струны находятся в плисте, во многом связан с проблемой. Вы будете хранить их таким образом, несмотря ни на что. Но если вы хотите отобразить HTML-подобное форматирование внутри пользовательского интерфейса, у вас есть два варианта:
NSAttributedString
, который является
доступно начиная с iOS 3.2. Я
поверьте, что вам придется разобраться
как получить из HTML
представительство справа
атрибуты в строке. UIWebView
и непосредственно визуализируйте HTML. Это звучит тяжеловес, особенно для лейблов, и это, вероятно, было бы, но вы можете попробовать. (Суть здесь в том, что на ваш вопрос нет тривиального ответа - фреймворки Cocoa изначально не говорят много HTML, а внутриструбочное форматирование - это не то, что обязательно легко сделать.)
Чтобы разметка HTML работала, вам нужно отображать текст в UIWebView, а не в UILabel. Ознакомьтесь с документацией UIWebView здесь .
Обновление: В ответ на другой ответ я не верю, что UILabel будет правильно отображать NSAttributedString даже в iOS 4. Apple рекомендует использовать стилизованный текст с помощью UIWebView (или рисовать текст самостоятельно, используя Core Text , что значительно сложнее).