简介
使用方法
计算段落高度
相关属性
alignment - 对齐方式 firstLineHeadIndent - 首行缩进 headIndent - 缩进 tailIndent - 尾部缩进 lineBreakMode - 断行方式 maximumLineHeight - 最大行高 minimumLineHeight - 最低行高 lineSpacing - 行距 paragraphSpacing -段距 paragraphSpacingBefore - 段首空间 baseWritingDirection - 句子方向 lineHeightMultiple - 可变行高乘因数 hyphenationFactor - 连字符属性
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 - 连字符属性
(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;// 分割模式
/*
NSLineBreakByWordWrapping = 0, // Wrap at word boundaries, default
NSLineBreakByCharWrapping, // Wrap at character boundaries
NSLineBreakByClipping, // Simply clip
NSLineBreakByTruncatingHead, // Truncate at head of line: “…wxyz”
NSLineBreakByTruncatingTail, // Truncate at tail of line: “abcd…”
NSLineBreakByTruncatingMiddle // Truncate middle of line: “ab…yz”
*/
paragraphStyle.baseWritingDirection = NSWritingDirectionRightToLeft;// 段落方向
/*
NSWritingDirectionNatural = -1, // Determines direction using the Unicode Bidi Algorithm rules P2 and P3
NSWritingDirectionLeftToRight = 0, // Left to right writing direction
NSWritingDirectionRightToLeft = 1
*/
}以上就是关于MacOS开发-NSParagraphStyle的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号