項目中有這樣的需求,要顯示一本書的概述,默認顯示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];
}