IOS:UILbalel笔记

来源:互联网 发布:橙光制作工具mac 编辑:程序博客网 时间:2024/06/14 01:04
1、UILbalel宽度/高度自适应

假设我们要自适应的这个UILabel名字为label,而要讲它添加到一个名为testView的UIView类中,下面是自适应的代码实现:


 //初始化label
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
    //设置自动行数与字符换行
    [label setNumberOfLines:0];
    // 测试字串
    NSString *s = @"这是一个测试!!!这是一个测试!!!这是一个测试!!!这是一个测试!!!这是一个测试!!!这是一个测试!!!";
    UIFont *font = [UIFont fontWithName:@"Arial" size:12];
    label.font = font;
    //设置一个行高上限
    CGSize size = CGSizeMake(2000,50);
    //计算实际frame大小,并将label的frame变成实际大小
    CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
    label.frame = CGRectMake(0, 0, labelsize.width, labelsize.height);
    label.text = s;
    [_testView addSubview:label];

当然用于怀疑的人会发现其实UILineBreakModeWordWrap适应的IOS版本为2X-6X,而且这段代码度娘一下,fuck(又被骗了)。别太激动,6X以后的替代品在这里:NSLineBreakByCharWrapping,我认为你还是乖乖的用这个吧。
严格来说这里不是无限制的让UILabel疯狂的延伸,至少要给它限定在一个度里,就像法律之外的自由是不会随便给你的。那么这里的法律就是 CGSize size = CGSizeMake(2000,50);加上 CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
0 0
原创粉丝点击