项目中有这样的需求,要显示一本书的概述,默认显示2行,点击展开按钮,显示所有,点击收回,有显示2行。 spa
开始的时候按钮事件中,可能写的是这样一段代码: orm
if (isExpand) { 事件
[lblBrief setNumberOfLines:2]; it
lblBrief.text = [StringUtil subString:strBrief AndSubLength:90]; im
[btnBrief setImage:[UIImage imageNamed:@"detailBriefDown"] forState:UIControlStateNormal]; 项目
[btnBrief setImage:[UIImage imageNamed:@"detailBriefDown"] forState:UIControlStateHighlighted]; di
}else{ view
[lblBrief setNumberOfLines:0]; vi
lblBrief.text = strBrief; co
[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]
[brief setFrame:CGRectMake(15,160,size.width,size.height)];
[btnBrief setImage:[UIImage imageNamed:@"detailBriefUp"]forState:UIControlStateNormal];
[btnBrief setImage:[UIImage imageNamed:@"detailBriefUp"]forState:UIControlStateHighlighted];
}