2012-08-16 63 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

相关问题