MacOS 开发

来源:互联网 发布:django redis mysql 编辑:程序博客网 时间:2024/06/15 05:34

  • 简介
  • 使用方法
  • 计算段落高度
  • 相关属性
    • alignment - 对齐方式
    • firstLineHeadIndent - 首行缩进
    • headIndent - 缩进
    • tailIndent - 尾部缩进
    • lineBreakMode - 断行方式
    • maximumLineHeight - 最大行高
    • minimumLineHeight - 最低行高
    • lineSpacing - 行距
    • paragraphSpacing -段距
    • paragraphSpacingBefore - 段首空间
    • baseWritingDirection - 句子方向
    • lineHeightMultiple - 可变行高乘因数
    • hyphenationFactor - 连字符属性
    • lineBreakMode 分割模式
      • 段落方向 baseWritingDirection


简介

NSParagraphStyleAttributeName 用于设置 NSAttributedString,和 NSFontAttributeName 类似。
不同的是:NSParagraphStyleAttributeName 是设置段落风格,NSFontAttributeName是设置字体。


使用方法

- (void)drawRect:(NSRect)dirtyRect {    [super drawRect:dirtyRect];    NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle alloc] init];    [textStyle setAlignment:NSTextAlignmentCenter];    [textStyle setLineBreakMode:NSLineBreakByTruncatingTail];    NSDictionary *attributes = @{NSFontAttributeName: [NSFont systemFontOfSize:18],                                 NSForegroundColorAttributeName: [NSColor whiteColor],                                 NSParagraphStyleAttributeName: textStyle};    float w = self.frame.size.width;    float h = self.frame.size.height;    float str_h = 20;    NSAttributedString *attributedText4 = [[NSAttributedString alloc] initWithString:@"这是一个 string" attributes:attributes];}

计算段落高度

 - (void)countHeight{    NSString *originStr = @"ashdhsaksah 和就会撒大声地哈萨克的";    NSMutableAttributedString *attriStr = [[NSMutableAttributedString alloc] initWithString:originStr];    NSFont *descFont = [NSFont systemFontOfSize:16];    NSMutableParagraphStyle *descStyle = [[NSMutableParagraphStyle alloc]init];    [descStyle setLineSpacing:1];//行间距    CGFloat destinW = 100;    CGSize descSize = [originStr boundingRectWithSize:CGSizeMake(destinW, MAXFLOAT)                                                options:NSStringDrawingUsesLineFragmentOrigin                                             attributes:@{NSFontAttributeName:descFont,                                                          NSParagraphStyleAttributeName :descStyle}                                                context:nil].size;}

相关属性

NSMutableParagraphStyle与NSParagraphStyle包括一下属性

alignment - 对齐方式

firstLineHeadIndent - 首行缩进

headIndent - 缩进

tailIndent - 尾部缩进

lineBreakMode - 断行方式

maximumLineHeight - 最大行高

minimumLineHeight - 最低行高

lineSpacing - 行距

paragraphSpacing -段距

paragraphSpacingBefore - 段首空间

baseWritingDirection - 句子方向

lineHeightMultiple - 可变行高,乘因数。

hyphenationFactor - 连字符属性


参考:http://www.jianshu.com/p/4bb42470cfdd

- (void)setParagraphStyle{    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];    paragraphStyle.lineSpacing = 20.;// 行间距    paragraphStyle.lineHeightMultiple = 1.5;// 行高倍数(1.5倍行高)    paragraphStyle.firstLineHeadIndent = 30.0f;//首行缩进    paragraphStyle.minimumLineHeight = 10;//最低行高    paragraphStyle.maximumLineHeight = 20;//最大行高(会影响字体)    paragraphStyle.alignment = NSTextAlignmentLeft;// 对齐方式    paragraphStyle.defaultTabInterval = 144;// 默认Tab 宽度    paragraphStyle.headIndent = 20;// 起始 x位置    paragraphStyle.tailIndent = 320;// 结束 x位置(不是右边间距,与inset 不一样)    paragraphStyle.paragraphSpacing = 44.;// 段落间距    paragraphStyle.paragraphSpacingBefore = 44.;// 段落头部空白(实测与上边的没差啊?)    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;// 分割模式    paragraphStyle.baseWritingDirection = NSWritingDirectionRightToLeft;// 段落方向}

lineBreakMode 分割模式

NSLineBreakByWordWrapping = 0,  // Wrap at word boundaries, defaultNSLineBreakByCharWrapping,  // Wrap at character boundariesNSLineBreakByClipping,  // Simply clipNSLineBreakByTruncatingHead, // Truncate at head of line: "...wxyz"NSLineBreakByTruncatingTail, // Truncate at tail of line: "abcd..."NSLineBreakByTruncatingMiddle // Truncate middle of line:  "ab...yz"

段落方向 baseWritingDirection

     NSWritingDirectionNatural       = -1,    // Determines direction using the Unicode Bidi Algorithm rules P2 and P3     NSWritingDirectionLeftToRight   =  0,    // Left to right writing direction     NSWritingDirectionRightToLeft   =  1
原创粉丝点击