NSMutableParagraphStyle & NSAttributedString 文本样式设置

今天做工作时,用到了 NSMutableParagraphStyle & NSAttributedString ,由于用C#语言 写,一开始比较生疏,有些语法和oc语言还是有点区别的,下面先把C#代码贴上        public NSAttributedString HighAttributedString (string highText,UIColor textColor,UIColor bgColor,float textfont, UITextAlignment textAlignment ){

            NSMutableParagraphStyle paragraStyle = new NSMutableParagraphStyle();
            paragraStyle.Alignment = textAlignment;
            paragraStyle.LineSpacing = 0.0f;
            UIFont font = UIFont.FromName (highText,textfont);
            if (font == null) {
                font = UIFont.SystemFontOfSize (textfont);
            }
             UIStringAttributes stringAttrubutes = new UIStringAttributes();
            stringAttrubutes.Font = font;
            stringAttrubutes.ForegroundColor = textColor;
            stringAttrubutes.BackgroundColor = bgColor;
            stringAttrubutes.ParagraphStyle = paragraStyle;
             NSAttributedString attribute = new NSAttributedString (highText,stringAttrubutes);
              return attribute;
         }
这是我自己封装的一个方法, NSMutableParagraphStyle 这个属性我只用了两个,下面会贴出常用的属性介绍

[objc]  view plain copy
  1. <span style="color: rgb(112, 61, 170); font-family: Menlo; font-size: 18px;">NSMutableParagraphStyle -> </span><span style="color: rgb(112, 61, 170); font-family: Arial; font-size: 14px;"> </span><span style="color: rgb(112, 61, 170); font-family: Menlo; font-size: 18px;">NSParagraphStyle </span><span style="color: rgb(112, 61, 170); font-family: Menlo; font-size: 18px;">-> </span><span style="color: rgb(112, 61, 170); font-family: Arial; font-size: 14px;"> </span><span style="color: rgb(112, 61, 170); font-family: Menlo; font-size: 18px;">NSObject</span>  
[objc]  view plain copy
  1.   
[objc]  view plain copy
  1. typedef NS_ENUM(NSInteger, NSLineBreakMode) {/* What to do with long lines */  
  2.     NSLineBreakByWordWrapping = 0,     /* Wrap at word boundaries, default */  
  3.     NSLineBreakByCharWrapping,/* Wrap at character boundaries */  
  4.     NSLineBreakByClipping,/* Simply clip */剪掉后面显示不了的部分  
  5.     NSLineBreakByTruncatingHead,/* Truncate at head of line: "...wxyz" */头部分的内容以……方式省略  
  6.     NSLineBreakByTruncatingTail,/* Truncate at tail of line: "abcd..." */结尾部分的内容以……方式省略  
  7.     NSLineBreakByTruncatingMiddle/* Truncate middle of line:  "ab...yz" */中间部分的内容以……方式省略  
  8. } NS_ENUM_AVAILABLE_IOS(6_0);  
  9.   
  10.   
  11.   
  12.   
  13.   
  14. typedef NS_ENUM(NSInteger, NSWritingDirection) {  
  15.     NSWritingDirectionNatural       = -1,    // Determines direction using the Unicode Bidi Algorithm rules P2 and P3  
  16.     NSWritingDirectionLeftToRight   =  0,    // Left to right writing direction 左到右的书写方向  
  17.     NSWritingDirectionRightToLeft   =  1    // Right to left writing direction 右到左的书写方向  
  18. } NS_ENUM_AVAILABLE_IOS(6_0);  
  19.   
  20.   
  21.   
  22.   
  23.   
  24.   
  25.   
  26.  //   NSParagraphStyleAttributeName 段落的风格(设置首行,行间距,对齐方式什么的)看自己需要什么属性,写什么  
  27.     NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];  
  28.     paragraphStyle.lineSpacing = 10;// 字体的行间距  
  29.     paragraphStyle.firstLineHeadIndent = 20.0f;//首行缩进  
  30.     paragraphStyle.alignment = NSTextAlignmentJustified;//(两端对齐的)文本对齐方式:(左,中,右,两端对齐,自然)  
  31.     paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail;//结尾部分的内容以……方式省略 ( "...wxyz" ,"abcd..." ,"ab...yz")  
  32.     paragraphStyle.headIndent = 20;//整体缩进(首行除外)  
  33.     paragraphStyle.tailIndent = 20;//  
  34.     paragraphStyle.minimumLineHeight = 10;//最低行高  
  35.     paragraphStyle.maximumLineHeight = 20;//最大行高  
  36.     paragraphStyle.paragraphSpacing = 15;//段与段之间的间距  
  37.     paragraphStyle.paragraphSpacingBefore = 22.0f;//段首行空白空间/* Distance between the bottom of the previous paragraph (or the end of its paragraphSpacing, if any) and the top of this paragraph. */  
  38.     paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;//从左到右的书写方向(一共➡️三种)  
  39.     paragraphStyle.lineHeightMultiple = 15;/* Natural line height is multiplied by this factor (if positive) before being constrained by minimum and maximum line height. */  
  40.     paragraphStyle.hyphenationFactor = 1;//连字属性 在iOS,唯一支持的值分别为0和1  
  41.   
  42.   
  43.   
  44.   
  45.   
  46.   
  47.   
  48. /* 
  49.      NSFontAttributeName 字体大小 
  50.      NSParagraphStyleAttributeName 段落的风格(设置首行,行间距,对齐方式什么的) 
  51.      NSKernAttributeName 字间距 
  52.      */  
  53.     NSDictionary *attributes = @{  
  54.                                  NSFontAttributeName:[UIFont systemFontOfSize:15],  
  55.                                  NSParagraphStyleAttributeName:paragraphStyle,  
  56.                                  NSKernAttributeName:@(10),  
  57.                                                                 
  58.                                  };  
  59.     textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attribute
这些详细介绍是我在网上找的,简单了解一下,需要的自己看看哈!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值