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