我正在使用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;
答案 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;
}