在前面一篇文章中,介绍了属性文字的基本使用,本章节主要针对文字的段落样式展开演示说明。
先定义一段演示文字(文字中有中,英文)。
[cpp] view plaincopyNSString *src = [NSString stringWithString:@"其实流程是这样的: 1、生成要绘制的NSAttributedString对象。 2、生成一个CTFramesetterRef对象,然后创建一个CGPath对象,这个Path对象用于表示可绘制区域坐标值、长宽。 3、使用上面生成的setter和path生成一个CTFrameRef对象,这个对象包含了这两个对象的信息(字体信息、坐标信息),它就可以使用CTFrameDraw方法绘制了。"]; NSMutableAttributedString * mabstring = [[NSMutableAttributedString alloc]initWithString:src]; long slen = [mabstring length];
[cpp] view plaincopy"font-family: Arial, Helvetica, sans-serif;"> 在未设置段落样式的情况下,效果:
从上面的交果来看,想必大家也看到了,英文部份换行显示了。这个一般情况下不注意,但在大的段落文章中就会出现不对齐现象。
先不管上面的,下面逐个来演示一下段落属性。段落样式定义:
[cpp] view plaincopykCTParagraphStyleSpecifierAlignment = 0, //对齐属性 kCTParagraphStyleSpecifierFirstLineHeadIndent = 1, //首行缩进 kCTParagraphStyleSpecifierHeadIndent = 2, //段头缩进 kCTParagraphStyleSpecifierTailIndent = 3, //段尾缩进 kCTParagraphStyleSpecifierTabStops = 4, //制表符模式 kCTParagraphStyleSpecifierDefaultTabInterval = 5, //默认tab间隔 kCTParagraphStyleSpecifierLineBreakMode = 6, //换行模式 kCTParagraphStyleSpecifierLineHeightMultiple = 7, //多行高 kCTParagraphStyleSpecifierMaximumLineHeight = 8, //最大行高 kCTParagraphStyleSpecifierMinimumLineHeight = 9, //最小行高 kCTParagraphStyleSpecifierLineSpacing = 10, //行距 kCTParagraphStyleSpecifi