iOS UILabel 自适应

来源:互联网 发布:知鸟保险基础知识题库 编辑:程序博客网 时间:2024/04/29 07:31

一 固定宽度

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 21)];    if (label) {        // 设置文本内容        label.text = @"我真的很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长";        // 0代表不限制行数        [label setNumberOfLines:0];        // 因为行数不限制,所以这里在宽度不变的基础上(实际宽度会略为缩小),高度会自动扩充        [label sizeToFit];                [self.view addSubview:label];        [label release];    }

        因为label设定为行数无限制,所以label自适应会增加label的高度,实际的label.frame为(0, 0, 306, 105)

二 固定高度

UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 21)];    if (label2) {        // 设置文本内容        label2.text = @"我真的很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长";        // 0代表不限制行数        [label2 setNumberOfLines:1];        // 因为这里行数进行了限制,所以这里在高度不变的基础上,宽度增加了        [label2 sizeToFit];                [self.view addSubview:label2];        [label2 release];    }

        因为label对行数进行了限制,固定为1行,所以自适应会增加label的宽度,实际的label.frame为(0, 0, 1275, 21)。

        以此类推,如果将行数设置为2,那么label.frame将会变为(0, 0, 306, 42);随着行数增加,label.frame会越来越逼近(0, 0, 306, 105),最后等于这个值(当行数大于等于5);

原创粉丝点击