我正在尝试使用TTTableViewController
创建表格。我想在节标题中显示一个图像以及一些标题文本,类似于instagram和许多其他应用程序所做的。我尝试使用TTNavigatorDemo
中的示例来显示来自TTSectionedDatasource
的数据,(我不确定这是否是正确的方法,如果你知道的话,请提出一些更好的方法)。它包含部分名称/标题作为常规字符串,数据包含TTTableViewItem
。我尝试使用<UITableViewDelegate>
协议并使用viewForHeaderInSection
方法实现它,现在数据与section分开了。有没有更好的方法使用Three20我可以传递我的Header / Section视图和TableItemView
在数据源中,因为它允许我实现TTTableViewDragRefreshDelegate
,我在课堂上实现<UITableViewDelegate>
协议时无法实现。
我的班级声明现在看起来像
@interface ImageTable : TTTableViewController <UITableViewDelegate> { }
我想显示带有图片和文字的部分标题,如:
:
我目前正在使用TTNavigatorCode
填充我的数据
表是:
self.dataSource = [TTSectionedDataSource dataSourceWithObjects:
@"Food"
[TTTableViewItem itemWithText:@"Porridge" URL:@"tt://food/porridge"],
[TTTableTextItem itemWithText:@"Bacon & Eggs" URL:@"tt://food/baconeggs"],
[TTTableTextItem itemWithText:@"French Toast" URL:@"tt://food/frenchtoast"],
@"Drinks",
[TTTableTextItem itemWithText:@"Coffee" URL:@"tt://food/coffee"],
[TTTableTextItem itemWithText:@"Orange Juice" URL:@"tt://food/oj"],
@"Other",
[TTTableTextItem itemWithText:@"Just Desserts" URL:@"tt://menu/4"],
[TTTableTextItem itemWithText:@"Complaints" URL:@"tt://about/complaints"],
@"Other",
[TTTableTextItem itemWithText:@"Just Desserts" URL:@"tt://menu/4"],
[TTTableTextItem itemWithText:@"Complaints" URL:@"tt://about/complaints"],
nil];
通过实施该方法,我能够做出类似的事情:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
return myCustomView;
}
但由于我的数据来自模型类,我希望生成视图并以格式化方式将它们添加到数据源。我想知道是否有一种使用Three20的方法,通过该方法,我为部分指定了数据数组,并为部分下的相应数据指定了另一个数组?
非常感谢您的帮助
由于
答案 0 :(得分:1)
@interface FOOTableDelegate : TTTableViewDragRefreshDelegate
{
}
- (UIView*) createHeaderView:(FOODataSource *)fDataSource forSectionID:(NSString *)secID;
@end
- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (tableView.style == UITableViewStylePlain)
{
if ([tableView.dataSource respondsToSelector:@selector(tableView:titleForHeaderInSection:)])
{
NSString* title = [tableView.dataSource tableView:tableView titleForHeaderInSection:section];
if (title.length > 0)
{
UIView* header = [_headers objectForKey:title];
if (nil != header)
{
header.alpha = 1;
}
else
{
if (nil == _headers)
{
_headers = [[NSMutableDictionary alloc] init];
}
header = [self createHeaderView:tableView.dataSource forSectionID:title];
[_headers setObject:header forKey:title];
}
return header;
}
}
}
return nil;
}
- (UIView*) createHeaderView:(FeedDataSource *)fDataSource forSectionID:(NSString *)secID
{
//do some code for header View
return View;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
//return height for the Section Header
return height;
}
这将帮助您解决问题