iOS 7はNSHTMLTextDocumentType
となりました。これは、以下のコードを使用してhtmlを解析し、UITextView
に表示しています。それは、箇条書きの点を除いて、完全に動作します。NSHTMLTextDocumentTypeを使用した箇条書きの間隔と改行の開始位置
どのように私は両方のbulletpointsの各側の間隔( bulletpointとUItextView
左の境界とbulletpoint とその右にあるテキストの間のスペースとの間のスペース)を変更できますか?
さらに重要です。テキストが次の行に続く場合は、箇条書きテキストが始まった行の上の行と同じ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;
テキストをHTMLに変換してから、もう一度箇条書きスタイルに変換していますか? NSmutableArrayのNSDictionaryを持っている場合は、箇条書きの点を直接表示できます –