Maison > Article > interface Web > À propos du développement MacOS - NSParagraphStyle
Introduction
Comment utiliser
Calculer la hauteur du paragraphe
Attributs associés
alignment - 对齐方式 firstLineHeadIndent - 首行缩进 headIndent - 缩进 tailIndent - 尾部缩进 lineBreakMode - 断行方式 maximumLineHeight - 最大行高 minimumLineHeight - 最低行高 lineSpacing - 行距 paragraphSpacing -段距 paragraphSpacingBefore - 段首空间 baseWritingDirection - 句子方向 lineHeightMultiple - 可变行高乘因数 hyphenationFactor - 连字符属性
NSParagraphStyleAttributeName est utilisé pour définir NSAttributedString, similaire à NSFontAttributeName.
La différence est la suivante : NSParagraphStyleAttributeName sert à définir le style de paragraphe, NSFontAttributeName sert à définir la police.
- (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 et NSParagraphStyle incluent les attributs suivants
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 */ }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!