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];


        }



  • 相关阅读:
    Tiny模板引擎之开发工具
    Tiny框架应用实践之Tiny社区
    TINY框架:组件化的J2EE开发框架
    TinyRMI---RMI的封装、扩展及踩到的坑的解决
    新手如何入门
    从应用示例来认识Tiny框架
    图形化插件对Eclipse的版本要求
    可不可以在局域网编译TINY?
    批量创建的方法
    不在框架中,利用Django的models操作
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3144895.html
Copyright © 2011-2022 走看看