Three20框架,如何更改TTTableView的默认行高?

时间:2011-02-15 17:40:16

标签: iphone uitableview three20

我正在使用TTListDataSource来填充TTTableViewController。

这是我用来填充TTListDatSource项目数组的代码:

NSString *text = [NSString stringWithFormat:@"<b>%@</b><br/>%@", someObject.title, someObject.text];
TTStyledText *styledText = [TTStyledText textFromXHTML:text lineBreaks:YES URLs:YES];
[items addObject:[TTTableStyledTextItem itemWithText:styledText]];

我想更改TTTableView正在使用的默认行高,目前高度为2行。

任何想法我该怎么做?

我尝试在代码的一些部分使用这些属性而没有运气:

TTTableViewController.variableHeightRows = YES; 
TTStyledText.setNeedsLayout;
TTStyledText sizeToFit;

3 个答案:

答案 0 :(得分:4)

如果您使用variableHeightRows,则需要在表单元格类中实现:

+ (CGFloat)tableView:(UITableView*)tableView rowHeightForObject:(id)object;

请注意,使用variableHeightRows将导致框架遍历整个数据源,调用此方法以获取表的整体高度。如果你的所有行都是相同的高度,那么在loadView的TTTableViewController子类中你应该设置tableView的rowHeight属性。

答案 1 :(得分:0)

我在这里回答。

一种解决方案是覆盖TTTableViewController的initWithNibName方法,如下所示:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
    self.variableHeightRows = YES;

}
return self;

}

第二种方法是使用TTTableViewDragRefreshDelegate作为TTableViewController的委托。该委托将variableHeightRows设置为true。

- (id<UITableViewDelegate>)createDelegate {
return [[[TTTableViewDragRefreshDelegate alloc] initWithController:self] autorelease];}

答案 2 :(得分:0)

我的解决方案:

我刚刚将这两行移到了viewDidLoad方法中;这对我有用!

- (void)viewDidLoad
{
    self.title = @"E-Mail";
    self.variableHeightRows = YES;
}