与iOS 7来到NS
HTMLTextDocumentType,其中进出口使用下面的代码来解析HTML并显示在一个UITextView.它完美地工作,除了带有点子.
我如何能够改变项目符号两边的间距(两者之间的距离)
bulletpoint和UItextView左边界以及项目符号之间的空格
和右边的文本)?
而且,更重要的是.如果文本继续在下一行,我还需要它继续像它上面的线,其中子弹点的文本开始同x位置.我该如何实现?
(第二行缩进)
我已经尝试过使用各种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;
解决方法
你应该可以停止一个可变的paragraphStyle,然后设置它的缩进,如:
NSMutableParagraphStyle *const bulletParagraphStyle = [paragraphStyle mutableCopy]; bulletParagraphStyle.firstLineHeadIndent = 20; bulletParagraphStyle.tailIndent =20;
然后将此段落样式设置为仅包含项目符号的文本的范围.
(这将是一个笨拙的尝试从HTML开始,我会认为:如果你想留下那条路线可能会分成两个HTML字符串,其中一个项目符号列表,一个标题,所以您可以更容易地设置不同的属性.)