这是我的情况。我正在构建一个RSS应用程序。我需要根据一天中的时间在一个部分中显示我的故事。有3个类别(AM Stories,PM Stories和Editorials)。我直接从RSS提要中获取这些类别。
最好的解决方法是什么?将永远存在编辑,并且将始终存在AM故事 - 只有PM故事是可变的。目前,我已经制作了三个数组来保存每个故事的RSS项目。我挂断了将正确数量的部分返回到UITableView数据源以及如何知道哪个部分#对应于相应的部分(即第0部分是否等于社论或是否等于AM故事?)
我非常感谢你能给我的任何帮助。
答案 0 :(得分:1)
你的tableViews部分将按顺序编号,从0开始。如果你没有PM故事,那么AM故事将是第0部分,社论将是第1部分。如果你有PM工作,那么AM故事将是第0部分,PM故事将是第1部分,社论将是第2部分。
根据您的PM Stories数组是否为空,您可以从numberOfSectionsInTableView:
返回正确数量的部分:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
if ([pmStoresArray count] > 0) {
return 3;
} else {
return 2;
}
}
然后在cellForRowAtIndexPath:
中,您可以使用相同的逻辑来确定该单元属于哪个部分的类别:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if (indexPath.section == 0) {
// am stories cell
} else if (indexPath.section == 1 && [pmStoriesArray count] > 0) {
// pm stories cell
} else {
// editorials cell
}
return cell;
}