iOS组件之UILabel详解

引言

UILabel类实现了一个只读的文本视图,它继承于UIView(有关UIControl请参照《iOS组件之UIView详解》)。你可以使用这个类来绘制一个或多个行的静态文本,如你可能会用它来识别你的用户界面的其他部分。该基地的UILabel类提供了既简单又复杂的标签文本的样式支持。您还可以控制在外观方面,如标签是否使用阴影或画一个亮点。如果需要,您还可以通过创建子类自定义您的文本的外观。

目录

  • 1、属性
  • 2、方法

1、属性

// UILabel显示内容

NSString           *text;

// 文字字体(默认为系统字体,大小17)

UIFont             *font;

// 字体颜色

UIColor            *textColor;

// 阴影颜色(默认没有阴影)

UIColor            *shadowColor;

// 阴影大小(默认为(0,-1))

CGSize             shadowOffset; 

// 文字对齐模式(默认是居左)

NSTextAlignment    textAlignment;

// 设置单词折行方式(默认NSLineBreakByTruncatingTail)

 NSLineBreakMode    lineBreakMode; 

// 文字显示属性(iOS6.0)

NSAttributedString *attributedText;

// 文字高亮时的颜色

UIColor *highlightedTextColor; 

// 是否支持高亮(默认为NO)

BOOL     highlighted;          // default is NO

// 是否允许接收触摸事件(默认为NO)

BOOL userInteractionEnabled;  // default is NO

// 文本是否可变(默认YES)

BOOL enabled;                 // default is YES. changes how the label is drawn

// 设置label可以显示多少行(0表示多行,默认为1)

NSInteger numberOfLines;

// 文本文字是否自适应大小(默认为NO)

BOOL adjustsFontSizeToFitWidth;         // default is NO

//

BOOL adjustsLetterSpacingToFitWidth NS_DEPRECATED_IOS(6_0,7_0); // deprecated - hand tune by using NSKernAttributeName to affect tracking

// 最小字体,行数为1时有效(默认为0.0 iOS2.0 – iOS6.0)

CGFloat minimumFontSize;

// 控制文本的基线位置,只有文本行数为1是有效(默认为UIBaselineAdjustmentAlignBaselines)

UIBaselineAdjustment baselineAdjustment;
//有三种方式
typedef enum {
    UIBaselineAdjustmentAlignBaselines = 0, 默认值文本最上端于label中线对齐
    UIBaselineAdjustmentAlignCenters,//文本中线于label中线对齐
    UIBaselineAdjustmentNone,//文本最低端与label中线对齐
} UIBaselineAdjustment;

// 设置最小字体,与minimumFontSize相同(iOS6.0)

CGFloat minimumScaleFactor; 

// 优先选择标签布局的最大宽度(iOS 6.0)

CGFloat preferredMaxLayoutWidth;    

2、方法

// 不可直接调用,需要子类重载,第二参数为0时没有行数限制

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

// 不可直接调用,需要子类重载

- (void)drawTextInRect:(CGRect)rect;





Comments