2012-08-16 75 views
2

我有一個表視圖,其中包含一個2行的靜態集(在故事板中創建)。我有一個特定的UITableViewCell,它包含一個大小是動態生成的文本框。我也想爲包含的UITableViewCell動態地設置hight,但是爲UITableViewCell設置.frame似乎沒有工作。有沒有人做這個編程方式,而不使用tableView:heightForRowAtIndexPath:?ios:以編程方式設置靜態UITableViewCell(不使用tableView:heightForRowAtIndexPath :)

當前代碼:

CGSize maximumLabelSize = CGSizeMake(296,9999); 
CGSize expectedLabelSize = [self.place.details sizeWithFont:self.descriptionLabel.font 
            constrainedToSize:maximumLabelSize 
             lineBreakMode:self.descriptionLabel.lineBreakMode]; 

CGRect labelFrame = self.descriptionLabel.frame; 
labelFrame.size.height = expectedLabelSize.height; 
// this does not change the height of the UITableViewCell.... 
self.descriptionTableViewCell.frame = labelFrame; 

回答

2

正如你不管UITableViewCell的高度注意,它被夾在UITableView的行的高度爲索引路徑。到tableView:cellForRowAtIndexPath:被稱爲行高已經佈局。只需使用tableView:heightForRowAtIndexPath:,因爲這是它的目的。關鍵的一點是,表格視圖需要知道它的行的高度所有以設置其滾動視圖,滾動條等。另一方面,它只需要具有屏幕上的實際單元格。關於爲什麼UITableViewDelegate以這種方式工作的更多討論,請參見this answer

+0

好 - 那並不難......謝謝! – wuntee 2012-08-17 01:12:57

相關問題