UILabel变量
1. Text Attributes
@property(nullable, nonatomic,copy) NSString *text; // default is nil
// 显示的文本
@property(null_resettable, nonatomic,strong) UIFont *font; // default is nil (system font 17 plain)
// 要显示文本的字体大小, 默认17points
@property(nonatomic, copy) NSAttributedString *attributedText
// 设置富文本 来代替 text
@property(nonatomic, strong) UIColor *textColor
// 文本的字体颜色, 若设置了attributedText的字体颜色,则会替代掉textColor
@property(nonatomic) NSTextAlignment textAlignment
// 字体的对齐方式,
typedef enum NSTextAlignment : NSUInteger {
NSTextAlignmentLeft = 0, // 居左对齐
NSTextAlignmentCenter = 1, // 居中对齐
NSTextAlignmentRight = 2, // 居右对齐
NSTextAlignmentJustified = 3, // 保证文本的最后是自然对齐
NSTextAlignmentNatural = 4, // 对齐方式遵循app设置
} NSTextAlignment;
@property(nonatomic) NSLineBreakMode lineBreakMode; // default is NSLineBreakByTruncatingTail. used for single and multiple lines of text
// 文本的截断方式,默认是 NSLineBreakByTruncatingTail , 当你设置styled text时候, 会代替掉这个方式
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"
} NS_ENUM_AVAILABLE(10_0, 6_0);
@property(nonatomic, getter=isEnabled) BOOL enabled // 这个属性决定了这个label是如何绘制, disabled 表示变暗,处于不活跃状态。默认是yes
2. Sizing the Label’s Text
@property(nonatomic) BOOL adjustsFontSizeToFitWidth
// 一般情况下label 的text 会根据你设置的font来绘制,如果你把adjustsFontSizeToFitWidth属性设置为yes, 则label会根据label的bounds和文本的长度来设置字体的大小以适应label的大小,直到你设置的minimum font size。
@property(nonatomic) UIBaselineAdjustment baselineAdjustment
// 当adjustsFontSizeToFitWidth为yes时,字体变动,baselineAdjustment 设置也随之变动,默认是UIBaselineAdjustmentAlignBaselines. 其作用仅仅是在 numberOfLines属性设置为0的时候。
@property(nonatomic) CGFloat minimumScaleFactor
// 最小字体尺寸
@property(nonatomic) NSInteger numberOfLines
// 最大文本的行数, 默认是1, 若设置成0则默认无限制行数。
3. Highlight Values
@property(nonatomic, strong) UIColor *highlightedTextColor
//当highlighted设置为yes 的时候, 会显示这个高亮色。
@property(nonatomic, getter=isHighlighted) BOOL highlighted
// 是否是高亮状态默认是 NO;
4. Drawing a Shadow
@property(nonatomic, strong) UIColor *shadowColor
// 默认的阴影的颜色。默认是nil,如果你不想用默认的shadow,你需要改变shadowOffset这个属性,
@property(nonatomic) CGSize shadowOffset
// 阴影偏移, 默认是(0, -1)
5. Getting the Layout Constraints
@property(nonatomic) CGFloat preferredMaxLayoutWidth
// 当布局约束应用于它时,这个属性影响label的size。在布局中,如果文本超出这个preferredMaxLayoutWidth指定的宽度,多余的文本则会换行,从而增加标签的高度。
6. Setting and Getting Attributes
@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
// 默认时no, 表示无法交互。
@property(nonatomic) BOOL clipsToBounds
// 确定子视图的范围仅限于视图。默认是yes
7. Drawing and Positioning Overrides
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
// 该方法只能被子类覆盖,
// bounds:The bounding rectangle of the receiver.
// numberOfLines : The maximum number of lines to use for the label. The value 0 indicates there is no maximum number of lines and that the rectangle should encompass all of the text.
- (void)drawTextInRect:(CGRect)rect
// 绘制text区域, 你不应该直接调用这个方法,这种方法只能被子类覆盖。在你的覆盖方法,你可以配置当前上下文, 然后调用super或你自己进行操作。如果你自己渲染文本,你不应该super方法;