苹果官方介绍: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 对象
网友评论