iPhone开发之UILabel

来源:互联网 发布:智慧地方门户cms 编辑:程序博客网 时间:2024/06/07 19:25

一直想写iPhone开发的文章,苦于没有时间,只能断断续续的更新了。语言方面就不讲了,先从UILabel说起吧。

UILabel在iPhone开发中我们经常使用,用来展示文本内容。下面具体说一下UILabel的方法。

一.设置UILabel的背景颜色,文字颜色

    UILabel *label = [[UILabel  alloc] initWithFrame:CGRectMake(20, 30, 280, 100)];
    // 设置背景颜色    [label setBackgroundColor:[UIColor clearColor]];
    // 设置字体    [label setFont:[UIFont boldSystemFontOfSize:14.0f]];
    // 设置文字颜色
    [label setTextColor:[UIColor redColor]];
    // 设置文本内容    label.text = @"我大大大s大ssds大鞑靼s大大s大事鞑靼s大事大鞑靼s大大大阿大大大大大大的啊哒哒哒哒哒阿大阿大s达到啊大地啊哒哒哒大大dada";    [self.view addSubview:label];

UILabel的默认为单行展示,即使你设置的UILabel的高度足够大。

       

如果UILabel要展示的文本内容很大,我们应该让UILabel进行自动折行展示,要让UILabel具有该功能,我们可以通过一下代码来实现

    [label setLineBreakMode:NSLineBreakByWordWrapping];
    // 设置为0,UILabel会自动折行展示文本内容,直到达到UILabel的最大高度值    label.numberOfLines = 0;


假如文本内容非常大,如果采用上述方法,再达到UILabel的最大高度时,后面的内容就不再显示。要解决这一问题,我们可以使用NSString中的sizeWithFont方法,大家可以研究一下该函数有三种“重载”函数。

CGSize labelSize = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(280, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
// CGSizeMake(280, MAXFLOAT) 这个Size的意思就是指定宽度。当每行的宽度达到280时,自动折行,MAXFLOAT的意思就是取最大高度,直到内容展示完全。
通过这个方法就可以获取UILabel的实际大小。

今天就写这么多吧,改天继续更新。