소개
사용법
단락 높이 계산
관련 속성
alignment - 对齐方式 firstLineHeadIndent - 首行缩进 headIndent - 缩进 tailIndent - 尾部缩进 lineBreakMode - 断行方式 maximumLineHeight - 最大行高 minimumLineHeight - 最低行高 lineSpacing - 行距 paragraphSpacing -段距 paragraphSpacingBefore - 段首空间 baseWritingDirection - 句子方向 lineHeightMultiple - 可变行高乘因数 hyphenationFactor - 连字符属性
NSParagraphSt yleAttributeName은 NSFontAttributeName과 유사하게 NSAttributedString을 설정하는 데 사용됩니다.
차이는 다음과 같습니다: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!