iOS——UILabel

一、概述

1. 说明

UILabel 是 iOS 开发中常用的控件,也是最基本的一个控件,通过 UILabel 可以系那是一段文本


2. 属性

1)设置显示内容;默认为 nil

@property(nullable,nonatomic,copyNSString * text;


2)设置字体大小;默认为 nil,采用 系统字体,17号

@property(null_resettable,nonatomic,strong)UIFont * font; 


3)设置文本颜色;默认为 nil,文本为黑色

@property(null_resettable,nonatomic,strong)UIColor * textColor; 


4)设置阴影颜色;默认为 nil

@property(nullable,nonatomic,strong)UIColor * shadowColor;


5)设置阴影偏移量;默认为 CGSizeMake(0, -1)

@property(nonatomicCGSize shadowOffset;


6)设置文本对齐方式;默认为 NSTextAlignmentNatural,在 iOS 9之前默认为 NSTextAlignmentLeft

@property(nonatomicNSTextAlignment textAlignment;

NSTextAlignment 枚举如下 :

typedef NS_ENUM(NSInteger, NSTextAlignment) {
        NSTextAlignmentLeft      = 0,   // 左对齐
        NSTextAlignmentCenter    = 1,   // 居中
        NSTextAlignmentRight     = 2,   // 右对齐
        NSTextAlignmentJustified = 3,   // 文本的最后是自然对齐
        NSTextAlignmentNatural   = 4,   // 遵循 app 的设置
    }


7)设置文本阶段方式,即文本宽度超出 label 宽度时,省略号的显示方式

@property(nonatomicNSLineBreakMode lineBreakMode; 

NSLineBreakMode枚举如下 :

typedef NS_ENUM(NSInteger, NSLineBreakMode) {
    NSLineBreakByWordWrapping = 0, // 以单词为显示单位显示,后面部分省略不显示。
    NSLineBreakByCharWrapping,     // 以字符为显示单位显示,后面部分省略不显示
    NSLineBreakByClipping,         // 剪切与文本宽度相同的内容长度,后半部分被删除
    NSLineBreakByTruncatingHead,   // 以单词为单位换行。如果是单行,则开始部分有省略号。如果是多行,则中间有省略号,省略号后面有4个字符
    NSLineBreakByTruncatingTail,   // 以单词为单位换行。无论是单行还是多行,都是末尾有省略号
    NSLineBreakByTruncatingMiddle  // 以单词为单位换行。无论是单行还是多行,都是中间有省略号
} 


8)设置属性字符串;默认为 nil

@property(nullable,nonatomic,copyNSAttributedString * attributedText;


9)设置高亮时的文本颜色;默认为 nil

@property(nullable,nonatomic,strongUIColor * highlightedTextColor;


10)设置是否是高亮状态;默认为 NO

@property(nonatomic,getter=isHighlighted)BOOL highlighted;


11)设置是否可以响应用户事件,例如 触摸事件

@property(nonatomic,getter=isUserInteractionEnabled)BOOL userInteractionEnabled;


12)设置是否处于激活状态;默认为 YES,如果为 NO,则表示没有激活,文本变暗,此时向 label 设置颜色是无效的

@property(nonatomic,getter=isEnabled) BOOL enabled;


13)设置显示的行数(即自动换行功能);默认为 1,设置为 0 时,可按照内容自动调整行数

@property(nonatomic)NSInteger numberOfLines;


14)设置字体大小是否随 label 的宽度变化而变化,即文本内容会自动调整大小以便能够在 label 中全部显示,当 numberOfLines 为 0 时没有用;只有在 numberOfLines 为 1 时才有用

@property(nonatomic)BOOL adjustsFontSizeToFitWidth;


15)设置基准线的位置;默认为 UIBaselineAdjustmentAlignBaselines;只有在 numberOfLines 为 1 时才有用

@property(nonatomic)UIBaselineAdjustment baselineAdjustment;

UIBaselineAdjustment 枚举如下 :

typedefNS_ENUM(NSInteger, UIBaselineAdjustment) {
    UIBaselineAdjustmentAlignBaselines =0, // 文本最高端与 label 中线对齐
    UIBaselineAdjustmentAlignCenters,      // 文本中线与 label 中线对齐
    UIBaselineAdjustmentNone,              // 文本最低端与 label 中线对齐
};


16)设置最小收缩比例;一般最小字体是 当前字体 * minimumScaleFactor 得到的,默认为 0

@property(nonatomic)CGFloat minimumScaleFactor;


17)这个属性是用来设置多行label的最大宽度的;当自动布局的时候约束这个label的时候这个属性会起作用;在自动布局添加约束中,若文本超过了指定的最大宽度的时候文本会另起一行从而增加了label的高度

@property(nonatomic)CGFloat preferredMaxLayoutWidth;


18)这两个方法是 UILabel 的子类需要重写的,不直接调用

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines;

- (void)drawTextInRect:(CGRect)rect;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS 中的 UILabel 是一种用于显示文本的控件,它可以用于显示降价信息。你可以使用具有 Markdown 格式的 UILabel,例如使用 YYText 组件。YYText 是 YYKit 的一个组件,它是一个功能强大的 iOS 文本框架,用于显示和编辑富文本。它具有高性能的异步文本布局和渲染,并且扩展了 CoreText 的属性,提供了更多的文本效果。你可以使用 NSMutableAttributedString 来创建富文本字符串,并将其设置给 UILabel 的 attributedText 属性,以实现降价信息的显示。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CDMarkdownKit:广泛的Swift框架,提供简单且可自定义的markdown解析](https://download.csdn.net/download/weixin_42099087/15035498)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [YYText:用于显示和编辑富文本的 iOS 文本框架-开源](https://download.csdn.net/download/weixin_42116672/20385582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [GitHub - ElvisCen/PPCounter: 一款简单实用的数字加减动画,支持UILabel、UIButton显示](https://blog.csdn.net/weixin_36159799/article/details/117478907)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值