iOS UILabel 属性详解与使用心得

热门标签

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

UILabel作为一个展示文字的控件,功能比较强大,可以展示普通文本,富文本,多行文字。

1.初始化UILabel

UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 50)];
titleLabel.text = @"test";

2.属性介绍

//设置label的文字

titleLabel.text = @"我的测试文字";

//设置label的字体

titleLabel.font = [UIFont systemFontOfSize:12];

//设置label的颜色

//default is nil (text draws black)
 titleLabel.textColor = [UIColor grayColor];

//设置label的阴影颜色和偏移

titleLabel.shadowColor = [UIColor redColor]; titleLabel.shadowOffset = CGSizeMake(10, 10);

//设置文字对齐方式

titleLabel.textAlignment = UITextAlignmentLeft;//文字靠左
titleLabel.textAlignment = UITextAlignmentCenter;//文字居中
titleLabel.textAlignment = UITextAlignmentRight;//文字靠右

//设置文案的换行模式

titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;//截取末尾
typedef NS_ENUM(NSInteger, NSLineBreakMode) {
    NSLineBreakByWordWrapping = 0,      // Wrap at word boundaries, default
    NSLineBreakByCharWrapping,      // Wrap at character boundaries
    NSLineBreakByClipping,      // Simply clip
    NSLineBreakByTruncatingHead,    // Truncate at head of line: "...wxyz" //截取头部
    NSLineBreakByTruncatingTail,    // Truncate at tail of line: "abcd..." 截取末尾
    NSLineBreakByTruncatingMiddle   // Truncate middle of line:  "ab...yz" 截取中间
} 

//设置富文本

titleLabel.attributedText = [[NSAttributedString alloc] initWithString:@"我是富文本"];

//设置高亮状态相关

 titleLabel.highlightedTextColor = [UIColor greenColor];
 titleLabel.highlighted = YES;

//label 交互以及是否可用

//默认不能交互,如添加手势不生效
 titleLabel.userInteractionEnabled = YES;
 titleLabel.enabled = YES;

//设置label显示的行数

//0表示显示任意行
titleLabel.numberOfLines = 0;

//设置label是否自适应字体大小

titleLabel.adjustsFontSizeToFitWidth = YES;

//设置label基线对齐方式(当adjustsFontSizeToFitWidth= YES时生效)
//默认对齐方式

typedef enum {    
      UIBaselineAdjustmentAlignBaselines,   //默认值文本最上端与label中间线对齐 
      UIBaselineAdjustmentAlignCenters,   //text中间与label中间线对齐
      UIBaselineAdjustmentNone,    //text最低端与label中间线对齐
 } UIBaselineAdjustment;    

titleLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;

//设置最小缩放字体(当adjustsFontSizeToFitWidth= YES,指定了最小缩放字体)

titleLabel.minimumScaleFactor = 20;

//label截断是否紧缩文字

//The default value of this property is NO.
titleLabel.allowsDefaultTighteningForTruncation = YES;

3.使用技巧

1.设置文字的时候,通过 [titleLabel sizeToFit]可以自适应文字。
NOTE:在sizeToFit之前需要指定label的宽度。
2.当需要根据字体和文字大小自适应的时候,可以使用adjustsFontSizeToFitWidth属性,进行给定宽高适配。
NOTE:默认文字顶部和中心对齐,可以设置titleLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines; 解决。
也可以使用NSString的方法,计算出适应字体的大小,不过这个接口在iOS7废弃了。

//通过指定字体,设置最小字体,宽度,以及换行模式,返回对应的字体。
    CGFloat fontSizeThatFits; 
   [tempString sizeWithFont: [UIFont systemFontOfSize:12] minFontSize:20  actualFontSize:&fontSizeThatFits forWidth:self.cg_width lineBreakMode:NSLineBreakByWordWrapping];

3.当照片和文字需要显示在多行一起显示的时候,可以通过富文本显示。
NOTE:单纯的照片可以使用NSTextAttachment,复杂的交互可以使用CoreText。

           UIImage *image = [UIImage imageWithColor:[UIColor clearColor]];;
           NSTextAttachment *attach = [[NSTextAttachment alloc] init];
           attach.image = image;
           attach.bounds = CGRectMake(0, 0, 0, 20);
           NSAttributedString *textAttachmentString = [NSAttributedString attributedStringWithAttachment:attach];

 

 

标签:

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术Dog|博客
原文地址:《iOS UILabel 属性详解与使用心得》 发布于2019-09-28

分享到:
赞(0) 打赏

评论 抢沙发

5 + 3 =


iOS UILabel 属性详解与使用心得

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?