iOS 7 が登場しました。NSHTMLTextDocumentType
これは、以下のコードを使用して html を解析し、UITextView
. 箇条書きを除いて、完全に機能します。
箇条書きの両側の間隔 (箇条書きとUItextView
左の境界線の間のスペースと、箇条書きとその右側のテキストの間のスペース) を変更するにはどうすればよいですか?
また、もっと重要なこと。テキストが次の行に続く場合は、箇条書きのテキストが始まった上の行のように、同じ x 位置に続く必要もあります。どうすればこれを達成できますか?(2 行目のインデント)
私はあらゆる種類の css を使用してみましたが、NSHTMLTextDocumentType
まだかなり制限されているようです。私がなんとかしたのは、リストだけの色を変更することだけです。
すべての助けに感謝します。
前もって感謝します!
コード:
_textView.textContainer.lineBreakMode = NSLineBreakByCharWrapping;
NSString *testText = @"<p><b>This is a test with:</b></p><ul><li>test test test
test test test test test test test test test test <li>test test test test test
test <li>test test test test test <li>test test test test test test test test
test test test test <li>test test test test test test test test <li>test test
test test test test <li>test test test test test test test test test
</li></ul>";
NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
NSData *htmlData = [testText dataUsingEncoding:NSUnicodeStringEncoding];
_attributedString = [[NSMutableAttributedString alloc] initWithData:htmlData
options:options documentAttributes:nil error:nil];
// Paragraph style
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.paragraphSpacing = 0;
paragraphStyle.lineHeightMultiple = 1.0f;
paragraphStyle.maximumLineHeight = 30.0f;
paragraphStyle.minimumLineHeight = 20.0f;
// Adding attributes to attributedString
[_attributedString addAttributes:@{NSParagraphStyleAttributeName:paragraphStyle}
range:NSMakeRange(0,_attributedString.length)];
[_attributedString addAttributes:@{NSFontAttributeName:font}
range:NSMakeRange(0,_attributedString.length)];
// Setting the attributed text
_textView.attributedText = _attributedString;