zoukankan      html  css  js  c++  java
  • IOS开发之UILabel动态高度设置方法

    项目中有这样的需求,要显示一本书的概述,默认显示2行,点击展开按钮,显示全部,点击收回,有显示2行。


    开始的时候按钮事件中,可能写的是这样一段代码:

    if (isExpand) {

            [lblBrief setNumberOfLines:2];

            lblBrief.text = [StringUtil subString:strBrief AndSubLength:90];

            [btnBrief setImage:[UIImage imageNamed:@"detailBriefDown"] forState:UIControlStateNormal];

            [btnBrief setImage:[UIImage imageNamed:@"detailBriefDown"] forState:UIControlStateHighlighted];

        }else{

            [lblBrief setNumberOfLines:0];

            lblBrief.text = strBrief;

            [btnBrief setImage:[UIImage imageNamed:@"detailBriefUp"] forState:UIControlStateNormal];

            [btnBrief setImage:[UIImage imageNamed:@"detailBriefUp"] forState:UIControlStateHighlighted];

        }

    可以通过setNumberOfLines:0,来让概述的所以内容显示出来,但如果,不计算所要显示全部内容的总高度,label的宽高是不会自动增大的。


     

    else{

            [lblBrief setNumberOfLines:0];

            lblBrief.text = strBrief;

     

           CGSize constraint = CGSizeMake(self.view.frame.size.width - (15 * 2), 20000.0f);

            

            CGSize size = [strBrief sizeWithFont:[UIFont systemFontOfSize:10]constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

            

            [brief setFrame:CGRectMake(15,160,size.width,size.height)];


            [btnBrief setImage:[UIImage imageNamed:@"detailBriefUp"]forState:UIControlStateNormal];

            [btnBrief setImage:[UIImage imageNamed:@"detailBriefUp"]forState:UIControlStateHighlighted];


        }



  • 相关阅读:
    对返回的json数据重写格式,用特性JsonConverter
    dev 的NavBarControl动态菜单
    获取oracel数据库的结构
    Java-背单词程序(俄语)
    实现同或操作 C++
    输入字符串先用cin后用getline函数失效原因
    C++全局变量与局部变量
    4.Redis事务
    3.持久化配置
    2.常用数据类型
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3144895.html
Copyright © 2011-2022 走看看