UILable 的用法涉及内容有如下
- 创建与显示
- 文本内容和字体设置
- 背景颜色指定
- 计算高度。
- 行数指定和计算
UIlabel可以显示指定的行数,设置numberOfLines =0 则为不限制行数,因为UIlabel不是Icontrol的方面,没有addTarget和block等方法处理相应的行为机制,但支持扩展手势触控等方法处理点击,不过对于html 超链接响应情况,在之前看过是需要采用第三方处理机制处理。
在日常使用过程,对于文本方法计算高度的用法很常用,ios提供相应计算方法。如属于NSString的类别(NSStringDrawing.h)该类为此提供相应处理解决方案,提供计算高度和文本大小的方法。
注意到 过去ios6的版本 提供sizeWithFont方法 在ios 7.0 已经不生效,需要改成其他方法处理。boundingRectWithSize 后续推荐的方式。
1 | - (CGSize)sizeWithAttributes:(NSDictionary *)attrs NS_AVAILABLE_IOS(7_0); |
1 | - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0); |
1 | self.label = [[UILabel alloc]initWithFrame:CGRectMake(85, 0, self.view.frame.size.width-85, 70)]; |
下面计算一下高度,当采用默认字体的时候,字体号为17,其高度约为20, 字体为14的时候,高度约为16~17之间
1 | 字体号:17 ,文本高:20 |
这些字体是默认字体,要是采用其他字体或者设置粗体 ,估计值会受到一些浮动影响。
1 | [self getTextHeight:17 width:self.view.frame.size.width-85]; |