iOS:个性化UITextView(缩进,行距,铺满)

时间:2022-11-11 23:38:22

总体来说个性化定制UITextView中的内容有两种方法:

1,从文件中读取内容到UITextView,这个个人感觉使用rtfd和rtf格式文件效果非常好。

2,使用NSAttributeString进行定制

具体方法如下:

  1. NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
  2. paragraphStyle.lineHeightMultiple = 20.f;
  3. paragraphStyle.maximumLineHeight = 25.f;
  4. paragraphStyle.minimumLineHeight = 15.f;
  5. paragraphStyle.firstLineHeadIndent = 20.f;
  6. paragraphStyle.alignment = NSTextAlignmentJustified;
  7. NSDictionary *attributes = @{ NSFontAttributeName:[UIFont systemFontOfSize:14], NSParagraphStyleAttributeName:paragraphStyle, NSForegroundColorAttributeName:[UIColor colorWithRed:76./255. green:75./255. blue:71./255. alpha:1]
  8. };
  9. textView.attributedText = [[NSAttributedString alloc]initWithString:content attributes:attributes];

当然也可以初始化一个NSMutableAttributedString,然后向里面添加文字样式,最后将它赋给textView的AttributedText即可

  1. NSMutableAttributedString *atr = [[NSMutableAttributedString alloc]initWithString:detail];
  2. [atr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, detail.length)];
  3. textView.attributedText = atr;

另外,对于textview中的链接样式,同样也可以定制

  1. NSDictionary *linkAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor],
  2. NSUnderlineColorAttributeName: [UIColor blackColor],
  3. NSUnderlineStyleAttributeName: @(NSUnderlinePatternDash)};
  4. self.linkTextAttributes = linkAttributes;

这里只是个简单的例子,具体还有很多属性可以自行参考头文件