UILabel文本框的使用

作者: 迷途的小蚂蚁 | 来源:发表于2016-11-23 11:15 被阅读132次

    苹果官方介绍:https://developer.apple.com/reference/uikit/uilabel

    一、基本的使用方法

    UILabel *label = [[UILabel alloc] initWithFrame: rect]; // 创建UILabel,并初始化

    label.backgroundColor = [UIColor grayColor]; // 设置背景色

    label.tag = tag; // 设置tag

    label.text = @"IOS开发"; // 设置标签文本

    label.font = [UIFont fontWithName:@"Arial" size:30]; // 设置标签文本字体和字体大小

    label.textAlignment = NSTextAlignmentCenter; // 设置文本对齐方式

    label.textColor = [UIColor blueColor]; // 文本颜色

    label.numberOfLines = number; // 文本最多行数,为0时没有最大行数限制

    label.highlighted = YES; // 文本高亮

    label.enabled = YES; // 文本是否可变

    label.shadowColor = [UIColor grayColor]; // 文本阴影颜色

    label.shadowOffset = CGSizeMake(1.0, 1.0); // 阴影大小

    label.userInteractionEnabled = YES; // default is NO,是否能与用户交互

    label.lineBreakMode = NSLineBreakByTruncatingTail; // 超出label边界文字的截取方式

    label.adjustsFontSizeToFitWidth = YES; // 文本文字自适应大小

    label.baselineAdjustment = UIBaselineAdjustmentAlignCenters; // 当 adjustsFontSizeToFitWidth = YES 时候,如果文本font要缩小时,baselineAdjustment这个值控制文本的基线位置,只有文本行数为1时有效


    typedef NS_ENUM(NSInteger, NSLineBreakMode) {                                                                                      NSLineBreakByWordWrapping = 0, // 默认以空格为边界,保留整个单词                                        NSLineBreakByCharWrapping, // 保留整个字符                                                                                NSLineBreakByClipping, // 到边界为止                                                                                              NSLineBreakByTruncatingHead, // 省略开头,以...代替                                                                    NSLineBreakByTruncatingTail, // 省略结尾,以...代替                                                                        NSLineBreakByTruncatingMiddle // 省略中间,以...代替,多行时作用于最后一行              } NS_ENUM_AVAILABLE(10_0, 6_0);

    typedef NS_ENUM(NSInteger, UIBaselineAdjustment) {                                                                                UIBaselineAdjustmentAlignBaselines = 0, // 默认值,文本最上端于label中线对齐                          UIBaselineAdjustmentAlignCenters, // 文本中线于label中线对齐                                                      UIBaselineAdjustmentNone, // 文本最低端与label中线对齐                                               };

    二、其他用法

    1、计算当前文本大小

    CGRect titleRect = [label.text boundingRectWithSize:CGSizeMake(labelMaxWidth, MAXFLOAT)                                                                            options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading                                                                                                 attributes:@{NSFontAttributeName: label.font}                                                                                    context: nil];

    2、关于字体的大小

    磅 = (像素/96)*72

    中文字号、英文字号(磅)、像素值的对应关系

    3、多种格式的文本

    NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:@"红色绿色"];

    NSRange redRange = NSMakeRange([[noteStr string] rangeOfString:@"红色"].location, [[noteStr string] rangeOfString:@"红色"].length);

    [noteStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range: redRange]; // 设置颜色

    [noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range: redRange]; // 设置字号

    NSRange greenRange = NSMakeRange([[noteStr string] rangeOfString:@"绿色"].location, [[noteStr string] rangeOfString:@"绿色"].length);

    [noteStr addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range: greenRange];// 设置颜色

    [noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range: greenRange]; // 设置字号

    noteLabel.attributedText = noteStr;

    4、文字的段落设置

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

    paragraphStyle.lineSpacing = 10; // 字体的行间距

    paragraphStyle.firstLineHeadIndent = 20.0f; // 首行缩进

    paragraphStyle.alignment = NSTextAlignmentJustified; //(两端对齐)文本对齐方式(左,中,右,两端对齐,自然)

    paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail; // 截取方式( "...xyz" ,"abcd..." ,"ab…xyz”)

    paragraphStyle.headIndent = 10; // 整体缩进(首行除外)

    paragraphStyle.tailIndent = 10; // 

    paragraphStyle.minimumLineHeight = 10; // 最低行高

    paragraphStyle.maximumLineHeight = 20; // 最大行高

    paragraphStyle.paragraphSpacing = 15; // 段与段之间的间距

    paragraphStyle.paragraphSpacingBefore = 22.0f; // 段首行空白空间

    paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight; // 从左到右的书写方向(一共三种)

    paragraphStyle.lineHeightMultiple = 15; /* Natural line height is multiplied by this factor (if positive) before being constrained by minimum and maximum line height. */

    paragraphStyle.hyphenationFactor = 1; // 连字属性(0或1)

    NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString: test attributes:@{NSParagraphStyleAttributeName: paragraphStyle}];

    label.attributedText= attributedText;


    富文本处理的其他属性

    // NSFontAttributeName                设置字体属性,默认值:字体:Helvetica(Neue) 字号:12

    // NSForegroundColorAttributeName      设置字体颜色,取值为 UIColor对象,默认值为黑色

    // NSBackgroundColorAttributeName     设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明色

    // NSLigatureAttributeName            设置连体属性,取值为NSNumber 对象(整数),0 表示没有连体字符,1 表示使用默认的连体字符

    // NSKernAttributeName                设定字符间距,取值为 NSNumber 对象(整数),正值间距加宽,负值间距变窄

    // NSStrikethroughStyleAttributeName  设置删除线,取值为 NSNumber 对象(整数)

    // NSStrikethroughColorAttributeName  设置删除线颜色,取值为 UIColor 对象,默认值为黑色

    // NSUnderlineStyleAttributeName      设置下划线,取值为 NSNumber 对象(整数),枚举常量 NSUnderlineStyle中的值,与删除线类似

    // NSUnderlineColorAttributeName      设置下划线颜色,取值为 UIColor 对象,默认值为黑色

    // NSStrokeWidthAttributeName         设置笔画宽度,取值为 NSNumber 对象(整数),负值填充效果,正值中空效果

    // NSStrokeColorAttributeName         填充部分颜色,不是字体颜色,取值为 UIColor 对象

    // NSShadowAttributeName              设置阴影属性,取值为 NSShadow 对象

    // NSTextEffectAttributeName          设置文本特殊效果,取值为 NSString 对象,目前只有图版印刷效果可用:

    // NSBaselineOffsetAttributeName      设置基线偏移值,取值为 NSNumber (float),正值上偏,负值下偏

    // NSObliquenessAttributeName         设置字形倾斜度,取值为 NSNumber (float),正值右倾,负值左倾

    // NSExpansionAttributeName           设置文本横向拉伸属性,取值为 NSNumber (float),正值横向拉伸文本,负值横向压缩文本

    // NSWritingDirectionAttributeName    设置文字书写方向,从左向右书写或者从右向左书写

    // NSVerticalGlyphFormAttributeName   设置文字排版方向,取值为 NSNumber 对象(整数),0 表示横排文本,1 表示竖排文本

    // NSLinkAttributeName                设置链接属性,点击后调用浏览器打开指定URL地址

    // NSAttachmentAttributeName          设置文本附件,取值为NSTextAttachment对象,常用于文字图片混排

    // NSParagraphStyleAttributeName      设置文本段落排版格式,取值为 NSParagraphStyle 对象

    相关文章

      网友评论

      本文标题:UILabel文本框的使用

      本文链接:https://www.haomeiwen.com/subject/yvgmpttx.html