开发者

three20 table view with custom cells (with different heights) problem

I have a table set up that displays some J开发者_StackOverflowSON data from the web. I have different types of elements in my data represented in different cells. Basically, I didn't subclass for every cell type, but I rather do a switch/case statement in the setObject/layoutSubviews/rowHeightForObject/etc methods. Now my problem is that certain cells contain a UILabel that varies based on the size of the text. What I do now, is create a label every time in the rowHeightForObject method and calculate it's size, to determine the height for that particular cell. Is there a more efficient way to do this?


You can use the TTStyledTextTableCell cell. There's a good example of it in the TTTwitter example project. the TTStyledTextTableCell accept a cell item with TTStyledText and adjust the height of the cell automatically.

If you're using a custom cell class, you will have to add a height function in your cell class and use TTStyledText instead of UILabel.

///////////////////////////////////////////////////////////////////////////////////////////////////
+ (CGFloat)tableView:(UITableView*)tableView rowHeightForObject:(id)object {
  TTStyledText* text = object;
  if (!text.font) {
    text.font = TTSTYLEVAR(font);
  }
  text.width = tableView.width - [tableView tableCellMargin]*2;
  return text.height;
}

The function calculates the height of TTStyledText class for each cell in the table data source.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜