UITableView - 使用有点复杂的数据填充 table
UITableView - Populating table with a bit complex data
好的,我有一些复杂的数据需要放在自定义 table 视图中。下面是NSMutableDictionary
的结构
cellData = [ "Section Header title" : NSMutableArray]; // NSMutableArray has custom cell objects
所以,基本上我是用相应的部分 header 名称标记自定义单元格数组 objects。问题是,我无法将数据设置为 table 视图单元格。
到目前为止,我一直在处理... cellForRowAtIndexPath
HomeTableViewCell *cell = (HomeTableViewCell*) [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.row];
NSMutableArray *array = [cellData objectForKey:sectionTitle];
if ([sectionTitle isEqual:@"Email"]) {
Email *email = (Email*) [arr objectAtindex:indexPath.row]; // I know this is wrong because there're multiple objects in "array". I couldn't get it right
[cell setCellData:...];
}
仅使用 indexPath.row
我无法从 "array" 获得所有 objects。任何尝试使用字典值填充自定义 table 视图单元格的人 ("key" : "Array")?
我想你想要做的是在获取章节标题时使用 indexPath.section:
NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.section];
一旦你有了正确的部分,你的数据应该正确排列。
当然,这假设您已正确设置其他方法,即:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return sectionNames.count;
}
和
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.row];
NSMutableArray *array = [cellData objectForKey:sectionTitle];
return array.count;
}
好的,我有一些复杂的数据需要放在自定义 table 视图中。下面是NSMutableDictionary
cellData = [ "Section Header title" : NSMutableArray]; // NSMutableArray has custom cell objects
所以,基本上我是用相应的部分 header 名称标记自定义单元格数组 objects。问题是,我无法将数据设置为 table 视图单元格。
到目前为止,我一直在处理... cellForRowAtIndexPath
HomeTableViewCell *cell = (HomeTableViewCell*) [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.row];
NSMutableArray *array = [cellData objectForKey:sectionTitle];
if ([sectionTitle isEqual:@"Email"]) {
Email *email = (Email*) [arr objectAtindex:indexPath.row]; // I know this is wrong because there're multiple objects in "array". I couldn't get it right
[cell setCellData:...];
}
仅使用 indexPath.row
我无法从 "array" 获得所有 objects。任何尝试使用字典值填充自定义 table 视图单元格的人 ("key" : "Array")?
我想你想要做的是在获取章节标题时使用 indexPath.section:
NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.section];
一旦你有了正确的部分,你的数据应该正确排列。
当然,这假设您已正确设置其他方法,即:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return sectionNames.count;
}
和
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.row];
NSMutableArray *array = [cellData objectForKey:sectionTitle];
return array.count;
}