iOS 开发-UILabel(文本)的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 开发-UILabel(文本)的使用相关的知识,希望对你有一定的参考价值。
参考技术A 1. 创建CGRectrect = CGRectMake(100,200,50,50);UILabel *label = [[UILabelalloc]initWithFrame:rect];
2. text 设置和读取文本内容,默认为nil
label.text = @”文本信息”; 设置内容
NSLog(@”%@”, label.text) 打印label内容
3. textColor 设置文字颜色,默认为黑色
lable.textColor = [UIColor redColor];
4. font 设置字体大小,默认17
label.font = [UIFont systemFontOfSize:20]; 跟随系统默认字体
label.font=[UIFont boldSystemFontOfSize:20]; 设置字体加粗字号为20的label
label.font=[UIFont fontWithName:@"Arial"size:16]; 指定字体的方法, 还有⼀一种从外部导入字体的方法
5. textAlignment 设置标签文本对齐方式
label.textAlignment = NSTextAlignmentCenter; 设置文本内容居中显示
label.textAlignment = NSTextAlignmentLeft; 设置文本内容居左显示
label.textAlignment = NSTextAlignmentRight; 设置文本内容居右显示
6. numberOfLines 设置文本最多显示行数, 为0则表示行数不限(无限行)
label.numberOfLines = 2; 设置文本内容行数为2行
7. enabled 只是决定了Label的绘制方式,将它设置为NO将会使文本变暗,表示它没有激活,这时向它设置颜色值是无效的, 默认为YES;
label.enable = NO;
8. highlighted 是否高亮显示,默认为NO
label.highlighted = YES;
label.highlightedTextColor = [UIColor orangeColor]; 高亮显示时的文本颜色
9. ShadowColor 设置阴影颜色
[label setShadowColor:[UIColorblackColor]];
10. ShadowOffset 设置阴影偏移量
[label setShadowOffset:CGSizeMake(-1,-1)];
11. baselineAdjustment
如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为。
label.baselineAdjustment = UIBaselineAdjustmentNone;
UIBaselineAdjustmentAlignBaselines = 0默认,文本最上端与中线对齐。
UIBaselineAdjustmentAlignCenters,文本中线与label中线对齐。
UIBaselineAdjustmentNone,文本最低端与label中线对齐。
12. Autoshrink 是否自动收缩FixedFontSize 默认,如果Label宽度小于文字长度时,文字大小不自动缩放minimumScaleFactor 设置最小收缩比例,如果Label宽度小于文字长度时,文字进行收缩,收缩超过比例后,停止收缩。minimumFontSize 设置最小收缩字号,如果Label宽度小于文字长度时,文字字号减小,低于设定字号后,不再减小。//6.0以后不再使用了。
label.minimumScaleFactor = 0.5;
13. adjustsLetterSpacingToFitWidth
改变字母之间的间距来适应Label大小
label.adjustsLetterSpacingToFitWidth = NO;
14. lineBreakMode 设置文字过长时的显示格式
label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显示,后面部分省略不显示。
label.lineBreakMode=NSLineBreakByClipping;剪切与文本宽度相同的内容长度,后半部分被删除。
label.lineBreakMode=NSLineBreakByTruncatingHead;前面部分文字以……方式省略,显示尾部文字内容。
label.lineBreakMode=NSLineBreakByTruncatingMiddle;中间的内容以……方式省略,显示头尾的文字内容。
label.lineBreakMode=NSLineBreakByTruncatingTail;结尾部分的内容以……方式省略,显示头的文字内容。
label.lineBreakMode=NSLineBreakByWordWrapping;以单词为显示单位显示,后面部分省略不显示。
15. adjustsFontSizeToFitWidth 设置字体大小适应label宽度
label.adjustsFontSizeToFitWidth = YES;
16. attributedText 设置标签属性文本。
NSString*text=@"first";
NSMutableAttributedString *textLabelStr = [[NSMutableAttributedStringalloc]initWithString:text];
[textLabelStrsetAttributes:@NSForegroundColorAttributeName[UIColorlightGrayColor],NSFontAttributeName: [UIFontsystemFontOfSize:17] range:NSMakeRange(11,10)];
label.attributedText = textLabelStr;
17. 竖排文字显示每个文字加一个换行符,这是最方便和简单的实现方式。
label.text=@"请\n竖\n直\n方\n向\n排\n列";
label.numberOfLines = [label.text length];(可以直接设置成数字)
18. 计算UIlabel 随字体多行后的高度
CGRect bounds = CGRectMake(0,0,200,300);
heightLabel = [label textRectForBounds:bounds limitedToNumberOfLines:20];计算20行后的Label的Frame
NSLog(@"%f",heightLabel.size.height);
19. UILabel根据字数多少自动实现适应高度
UILabel*msgLabel = [[UILabel alloc] initWithFrame:CGRectMake(15,45,0,0)];
msgLabel.backgroundColor=[UIColor lightTextColor];
[msgLabel setNumberOfLines:0];
msgLabel.lineBreakMode = UILineBreakModeWordWrap;
msgLabel.font = [UIFont fontWithName:@"Arial"size:12];
CGSize size = CGSizeMake(290,1000);
msgLabel.text = @"一个人 一首歌 一杯酒 一支烟 一部手机 一台电脑 一杯清茶 一路清贫 一路走 一路停 一个远方 一个你还没到来 万世孤独";
CGSize msgSie = [msgLabel.text sizeWithFont:fontsconstrainedToSize:size];
[msgLabel setFrame:CGRectMake(15,45,290,msgSie.height)];
20. 渐变字体
LabelUIColor *titleColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"btn.png"]];
NSString *title = @"Setting";
UILabel*titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0,0,80,44)];
titleLabel.textColor=titleColor;
titleLabel.text = title;
titleLabel.font = [UIFont boldSystemFontOfSize:20];
titleLabel.backgroundColor=[UIColor clearColor];
[self.view addSubview:titleLabel];
21. Label添加边框
titleLabel.layer.borderColor = [[UIColor grayColor] CGColor];
titleLabel.layer.borderWidth = 2;
22. 设置label内边距
.h文件
@interface DrawRectLabel : UILabel
@property ( nonatomic , assign ) UIEdgeInsets edgeInsets;
@end
.m文件 需要重写方法: - ( void )drawTextInRect:(CGRect)rect
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
UIEdgeInsetsinsets = self .edgeInsets;
CGRect rect = [ super textRectForBounds:UIEdgeInsetsInsetRect(bounds, insets)limitedToNumberOfLines:numberOfLines];
rect.origin.x -= insets.left;
rect.origin.y -= insets.top;
rect.size.width += (insets.left+ insets.right);
rect.size.height+= (insets.top+ insets.bottom);
return rect;
以上是关于iOS 开发-UILabel(文本)的使用的主要内容,如果未能解决你的问题,请参考以下文章
目标C:编写一个函数来返回UILabel中最后一个字符的位置?