我想動態地將單元格的rowheight設置爲UILabel的高度(這是單元格的子視圖)。iPhone:如何通過UILabel的內容高度更改rowheight
的困難是需要的UILabel通過檢查其字符串內容
兩個問題得到高度:
1 - 我怎樣才能正確設置取決於字符串lenght中的UILabel的numberofLines?
2-如何將這個UIlabel高度反映到row.height中,因爲在cellForRow方法之前調用委託方法heightForRowAtIndexPath?
這裏是一些代碼,whcih我相信我做somethinsg錯了..
Nsstring st= "very long text...";
CGSize theSize = [st sizeWithFont:font constrainedToSize:CGSizeMake(250.0f, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
CGRect cg = CGRectMake(0.0f, 0.0f, 250.0f, theSize.height);
UILabel *label=[[UILabel alloc] initWithFrame:cg];
label.textAlignment=UITextAlignmentLeft;
label.text=st;
[label setNumberOfLines:10];// this is trouble!! how to set this!?
[cell addSubview:label];
'UILabel' [numberOfLines](http://developer.apple.com/library/iOS/documentation/UIKit/Reference/UILabel_Class/Reference/UILabel.html#//apple_ref/occ/instp/UILabel/ numberOfLines)是*最大*行數。 「要刪除任何最大限制,並根據需要使用盡可能多的行,請將此屬性的值設置爲0。」 – albertamg
@albertamg令人驚歎!當我設置爲零時,大部分問題都解決了!現在怎樣才能將row.height設置爲size.height? tnx – Spring
您需要實現'heightForRowAtIndexPath:'並返回該行的適當高度。你可以將'theSize'的計算移動到一個輔助方法,並從'cellForRowAtIndexPath:'中使用它。 – albertamg