zoukankan      html  css  js  c++  java
  • ios label根据内容自适应高度

    label自适应高度,想必大家也都很熟悉怎么去做,上代码:

    UILabel *label3 = [[UILabel alloc]initWithFrame:CGRectMake(150, 50, 150, 0)];
    
        label3.font = [UIFont systemFontOfSize:15];
    
        label3.backgroundColor = [UIColor yellowColor];
    
        label3.numberOfLines = 0;
    
        label3.text = str;
    
        CGSize size = [label3 sizeThatFits:CGSizeMake(label3.frame.size.width, MAXFLOAT)];
    
        label3.frame = CGRectMake(label3.frame.origin.x, label3.frame.origin.y, label3.frame.size.width,            size.height);
    
        NSLog(@"label3.frame = %@",NSStringFromCGRect(label3.frame));
    
        [self.view addSubview:label3];
    
    

    但是这个地方有点小问题,###1:我不知道大家处理的习惯(比较菜,勿喷),我比较习惯把处理UI的逻辑和赋值的逻辑分开,那么就会有这样的代码

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        [self initUI];
        
        self.label.text = @"啥都不是较好的发布会绝对是部分谁看见对方比较快速的步伐会尽快";
        
    }
    
    -(void)initUI
    {
        self.label = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, 100, 30)];
        self.label.numberOfLines = 0;
        self.label.textColor = [UIColor blackColor];
        CGSize size = [self.label sizeThatFits:CGSizeMake(self.label.frame.size.width, MAXFLOAT)];
        self.label.frame = CGRectMake(self.label.frame.origin.x, self.label.frame.origin.y, self.label.frame.size.width, size.height);
        
         [self.view addSubview:self.label];
    }
    

    但是运行后你会发现,什么也没有!打印label.frame--- label[18169:1891997] {{10, 100}, {100, 0}} 这是因为我们在initUI方法中并没有给label赋值,那么label的高度默认为0了,所以处理自适应的时候只能在赋值之后再进行自适应的操作。

    第二个问题:如果我们有那种对齐的需求的话,如果文字比较少,那么可能会出现文字偏上的效果,这时候我们可以在自适应后,根据label高度判断,修改其高度。如下:

        self.titleL.text = model.cooperationInverseVO.ipDemandtitle;
        CGSize size = [self.titleL sizeThatFits:CGSizeMake(self.titleL.frame.size.width, MAXFLOAT)];
        self.titleL.frame = CGRectMake(self.titleL.frame.origin.x, self.titleL.frame.origin.y, self.titleL.frame.size.width, size.height);
        self.titleL.textColor = [UIColor colorWithHexString:@"#666666"];
        ///如果高度不足一行 强制为原来一行的高度
        if (self.titleL.hb_height < cellHeight) {
            self.titleL.hb_height = cellHeight;
        }
  • 相关阅读:
    .NET实现Excel文件的读写 未测试
    权限管理设计
    struts1中配置应用
    POJ 2139 Six Degrees of Cowvin Bacon(floyd)
    POJ 1751 Highways
    POJ 1698 Alice's Chance
    POJ 1018 Communication System
    POJ 1050 To the Max
    POJ 1002 4873279
    POJ 3084 Panic Room
  • 原文地址:https://www.cnblogs.com/Ewenblog/p/11323204.html
Copyright © 2011-2022 走看看