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
阅读全文
0 0
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- UVA 12338
- 二维码功能实现简单例子
- RabbitMQ管理(1)——多租户与权限
- 监控器物检测object detection实战
- 基于Excel的QR二维码生成工具——原理及算法详解(之二)
- MacOS 开发
- Linux下安装JDK和Eclipse(实用)
- Hexo博客搭建
- ES6——Function扩展
- Runtime的入门与应用之五-消息发送与转发
- CC2640R2F之ADC篇
- 输入一个非负整数,判断奇数和偶数
- C++
- Codeforces Round #436 (Div. 2) Make a Permutation!