2014-09-07 2 views
3

У меня есть простой HTML-код с ярлыком blockquote, который я хотел бы показать в UILabel (который находится внутри UITableViewCell, поэтому я не думаю, что использование UIWebView является решением моей проблемы).NSAttributedString из html с blockquote

Я решил преобразовать его в NSAttributedString и все работало нормально, но то, что я получил, - это цитируемый текст, выглядящий точно так же, как текст, который не цитируется (без отступов, без метки блока).

Я хотел бы спросить, есть ли какой-нибудь способ, которым Вы можете достичь чего-то схожего с современной цитатой упомянула here? или, по крайней мере, некоторые отступы и префикс перед каждой строкой абзаца с цитатой (т.е. > как олдскул электронной котировки) с помощью NSAttributedString?

+0

кажись нет: http://stackoverflow.com/questions/23409819/html-with-blockquote-tags-in-textview и этот GitHub, похоже, делает это: https://github.com/johnezang/NSAttributedString-Additions-for-HTML/blob/master/Classes/NSAttributedString%2BHTML.m – Larme

+0

Конечно, я видел упомянутую тему стека, но я надеялся, что, возможно, что-то изменилось с тех пор, как оно было опубликовано, и кто-то ответит на мой вопрос. Я проведу вторую ссылку, но если она будет такой же, как в DTCoreText, это не сработает. –

+0

У меня такая же проблема. Как вы его исправили? –

ответ

0

Я понимаю, что вы спросили об этом в Obj-C, но я просто щелкнул и заметил, что прошло три года, и у меня нет ответов, и я сделал это уже в другом месте, поэтому я мог бы также поделиться.

let parsedCommentHTML = html.replacingOccurrences(of: "<blockquote>\n", with: "<blockquote>\n<k style=\"color:#ccc; font-size: 2em; font-family: 'Copperplate'\">“</k>") 
let blockQuoteCSS = "\nblockquote > p {color:#808080; display: inline;} \n blockquote { background: #f9f9f9;}" 
let pCSS = "p {margin-bottom: 0px;}" 
let cssStyle = "\(blockQuoteCSS)\n\(pCSS)\n" 

return try NSAttributedString(data: ("<html><head><style>\(cssStyle)</style></head><span style=\"font-family: HelveticaNeue-Thin; font-size: 17\">\(parsedCommentHTML)</span></html>").data(using: String.Encoding.unicode)!, options: [NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType], documentAttributes: nil) 

Это дает хороший (на мой взгляд) ищет цитата: enter image description here

+0

Я действительно хочу использовать этот код в качестве руководства, но я никогда не кодировал его быстро, поэтому я не могу преобразовать его в цель-c, было бы очень полезно, если бы кто-то это сделал. – jane

+0

Ну, важная часть - это CSS. Прочитайте его как псевдокод. Единственный синтаксис, который вам нужно знать, - это то, что в swift вы можете использовать '' string string \ (variable) "' для вставки 'переменной в строку. – Sirens

+0

я мог читать Выпускаемое части, но это возвращение попробовать NSAttributedString (данные: (» \ (parsedCommentHTML) ") .data (используя: String.Encoding.unicode) !, options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil), где я запутался. – jane

Смежные вопросы