UIUILabel属性汇总

今天重新看了一下UILable这个属性,感觉还是蛮好的

首先是简单的使用

    UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(WIDTH/2, 200, WIDTH/2, WIDTH/2)];

    label.center = CGPointMake(WIDTH/2, HEIGHT/2);

    NSString * title = @"Label Text Content, This is a text label things attribute,汉字也可以吗?";

    label.text = title;

    label.font = [UIFont systemFontOfSize:20];  //font 需要单独看一下

    label.textColor = [UIColor blueColor];  //字体颜色

    label.shadowColor = [UIColor redColor];  //字体阴影颜色

    label.shadowOffset = CGSizeMake(1, 0);  //设置阴影的位置

    /*

     显示位置

     NSTextAlignmentLeft      = 0,    // 靠左

     NSTextAlignmentCenter    = 1,    // 居中

     NSTextAlignmentRight     = 2,    // 靠右

     NSTextAlignmentJustified = 3,    // 最后一行自然对齐  label.numberOfLines  一起使用

     NSTextAlignmentNatural   = 4,    // 默认对齐脚本

     */

    label.textAlignment = NSTextAlignmentCenter;

    label.numberOfLines = 0;

/*

     lineBreakMode //设置文字过长时的显示格式

     label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显

     示,后面部分省略不显示。

     label.lineBreakMode = NSLineBreakByClipping;剪切与文本宽度相同的内

     容长度,后半部分被删除。

     label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字

     ……方式省略,显示尾部文字内容。

     label.lineBreakMode = NSLineBreakByTruncatingMiddle;中间的内容

     ……方式省略,显示头尾的文字内容。

     label.lineBreakMode = NSLineBreakByTruncatingTail;结尾部分的内容

     ……方式省略,显示头的文字内容。

     label.lineBreakMode = NSLineBreakByWordWrapping;以单词为显示单位显

     示,后面部分省略不显示。

     */

    

//    label.lineBreakMode = NSLineBreakByTruncatingMiddle;

    //打开交互

//    label.userInteractionEnabled = YES;


    以上这些能共满足我们平常一些简单的UILabel的使用,更复杂一点的就要用到NSMutableAttributedString,下面我们介绍一下

 //富文本的基本数据类型,属性字符串。以此为基础,如果这个设置了相应的属性,则会忽略上面设置的属性,默认为空

    NSString *string = label.text;

    const CGFloat fontSize = 16.0;

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string];

    NSUInteger length = [string length];

    //设置字体

    UIFont *baseFont = [UIFont systemFontOfSize:fontSize];

    [attrString addAttribute:NSFontAttributeName value:baseFont range:NSMakeRange(0, length)];//设置所有的字体    //设置字体

    

    UIFont *boldFont = [UIFont boldSystemFontOfSize:fontSize];

    [attrString addAttribute:NSFontAttributeName value:boldFont range:[string rangeOfString:@"label"]];//设置Text这四个字母的字体为粗体

    

    //设置倾斜

    UIFont * italicFont = [UIFont italicSystemFontOfSize:20];

    [attrString addAttribute:NSFontAttributeName value:italicFont

                       range:[string rangeOfString:@"Label"]];

    

    // 设置颜色

    UIColor *color = [UIColor redColor];

    [attrString addAttribute:NSForegroundColorAttributeName

                       value:color

                       range:[string rangeOfString:@"汉字"]];

    [attrString addAttribute:NSBackgroundColorAttributeName value:[UIColor blueColor] range:[string rangeOfString:@"ent"]];

    

    

    //可以对这些属性设置值

    //字体名称有以下:

    //    label.font = [UIFont fontWithName:@"Arial-BoldItalicMT" size:24];

    [attrString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Verdana-BoldItalic" size:18] range:[string rangeOfString:@"Label"]];

    label.numberOfLines = 0;

    

    

    NSMutableParagraphStyle * style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];

    style.lineSpacing = 10;//增加行高

    style.headIndent = 10;//头部缩进,相当于左padding

    style.tailIndent = -10;//相当于右padding

    style.lineHeightMultiple = 1.5;//行间距是多少倍

    style.alignment = NSTextAlignmentLeft;//对齐方式

    style.firstLineHeadIndent = 20;//首行头缩进

    style.paragraphSpacing = 10;//段落后面的间距

    style.paragraphSpacingBefore = 20;//段落之前的间距

    

//    NSUnderlineStyleNone      

//    NSUnderlineStyleSingle    

//    NSUnderlineStyleThick 

//    NSUnderlineStyleDouble

//    

//    NSUnderlinePatternSolid 

//    NSUnderlinePatternDot 

//    NSUnderlinePatternDash

//    NSUnderlinePatternDashDot

//    NSUnderlinePatternDashDotDot

//    

//    NSUnderlineByWord

    /*

     字符属性

     

     字符属性可以应用于 attributed string 的文本中。

     

     常量

     

     1> NSFontAttributeName(字体)

     

     该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)

     

     2> NSParagraphStyleAttributeName(段落)

     

     该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上应用多个属性。如果不指定该属性,则默认为 NSParagraphStyle defaultParagraphStyle 方法返回的默认段落属性。

     

     3> NSForegroundColorAttributeName(字体颜色)

     

     该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的字体颜色。如果不指定该属性,则默认为黑色。

     

     4> NSBackgroundColorAttributeName(字体背景色)

     

     该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的背景颜色。如果不指定该属性,则默认无背景色。

     

     5> NSLigatureAttributeName(连字符)

     

     该属性所对应的值是一个 NSNumber 对象(整数)。连体字符是指某些连在一起的字符,它们采用单个的图元符号。0 表示没有连体字符。1 表示使用默认的连体字符。2表示使用所有连体符号。默认值为 1(注意,iOS 不支持值为 2)。

     

     6> NSKernAttributeName(字间距)

     

     该属性所对应的值是一个 NSNumber 对象(整数)。字母紧排指定了用于调整字距的像素点数。字母紧排的效果依赖于字体。值为 0 表示不使用字母紧排。默认值为0

     

     7> NSStrikethroughStyleAttributeName(删除线)

     

     该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上删除线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone

     

     8> NSUnderlineStyleAttributeName(下划线)

     

     该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上下划线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone

     

     9> NSStrokeColorAttributeName(边线颜色)

     

     该属性所对应的值是一个 UIColor 对象。如果该属性不指定(默认),则等同于 NSForegroundColorAttributeName。否则,指定为删除线或下划线颜色。更多细节见“Drawing attributedstrings that are both filled and stroked”

     

     10> NSStrokeWidthAttributeName(边线宽度)

     

     该属性所对应的值是一个 NSNumber 对象(小数)。该值改变描边宽度(相对于字体size 的百分比)。默认为 0,即不改变。正数只改变描边宽度。负数同时改变文字的描边和填充宽度。例如,对于常见的空心字,这个值通常为3.0

     

     11> NSShadowAttributeName(阴影)

     

     该属性所对应的值是一个 NSShadow 对象。默认为 nil

     

     12> NSVerticalGlyphFormAttributeName(横竖排版)

     

     该属性所对应的值是一个 NSNumber 对象(整数)0 表示横排文本。1 表示竖排文本。在 iOS 中,总是使用横排文本,0 以外的值都未定义。

     

     */

    [attrString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, length)];

    

    [attrString addAttribute:NSKernAttributeName value:@2 range:NSMakeRange(0, length)];//字符间距 2pt

    [attrString addAttribute:NSStrokeColorAttributeName value:[UIColor blueColor] range:[string rangeOfString:@"is"]];//设置文字描边颜色,需要和NSStrokeWidthAttributeName设置描边宽度,这样就能使文字空心

    

    [attrString addAttribute:NSStrokeWidthAttributeName value:@2 range:[string rangeOfString:@"is"]];//空心字,文字边框描述

    

    [attrString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:[string rangeOfString:@"text"]];//下划线

    

    [attrString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleThick) range:[string rangeOfString:@"label"]];//厚的下划线

    

    [attrString addAttribute:NSStrikethroughStyleAttributeName value:@(NSUnderlinePatternSolid | NSUnderlineStyleSingle) range:[string rangeOfString:@"things"]];//删除线

    

    [attrString addAttribute:NSStrikethroughColorAttributeName value:[UIColor blueColor] range:[string rangeOfString:@"things"]];//删除线蓝色®


    

    NSShadow * sha = [[NSShadow alloc] init];

    sha.shadowOffset = CGSizeMake(1, 0);

    sha.shadowColor = [UIColor blueColor];

    sha.shadowBlurRadius = 2; //阴影的大小

    [attrString addAttribute:NSShadowAttributeName value:sha range:[string rangeOfString:@"可以"]];


    //背景色

    [attrString addAttribute:NSBackgroundColorAttributeName value:[UIColor blueColor] range:[string rangeOfString:@""]];

    

    

    label.highlightedTextColor = [UIColor redColor];//设置文本高亮显示颜色,与highlighted一起使用。

    label.highlighted = YES; //高亮状态是否打开

    label.enabled = YES;//设置文字内容是否可变

    label.userInteractionEnabled = YES;//设置标签是否忽略或移除用户交互。默认为NO

    label.baselineAdjustment = UIBaselineAdjustmentNone;//如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为

    //    UIBaselineAdjustmentAlignBaselines=0,默认,文本最上端与中线对齐

    //    UIBaselineAdjustmentAlignCenters,   文本中线与label中线对齐

    //    UIBaselineAdjustmentNone,  文本最低端与label中线对齐;

    

    label.attributedText = attrString;

    [self.view addSubview:label];

    

}

最后上图



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值