我构建了一个UITableView,它包含从动态数组中提供的自定义单元格。
我的数组代码在这里 -
feedData *feedData1 = [[feedData alloc] initWithFeedTitle:@"Fishing Article" FeedGroup:@"articleP" FeedImage:@"blah" FeedDate:@"1/11/13" FeedDesc:@"Check out this swimming article..." FeedDestination:@"articlesSub" ];
feedData *feedData2 = [[feedData alloc] initWithFeedTitle:@"Runnung Article" FeedGroup:@"articleP" FeedImage:@"blah" FeedDate:@"4/11/13" FeedDesc:@"Check out this marvellous article..." FeedDestination:@"articlesSub" ];
feedData *feedData3 = [[feedData alloc] initWithFeedTitle:@"Runnung Article" FeedGroup:@"articleP" FeedImage:@"" FeedDate:@"4/11/13" FeedDesc:@"Check out this marvellous article..." FeedDestination:@"articlesSub" ];
self.HpFeedArray = [NSArray arrayWithObjects:feedData1, feedData2, feedData3, nil];
我希望每个单元格上方有一个边距 - 我能想到如何做到这一点的唯一方法是将单元格分成几个部分,应用一个部分标题并在每个部分显示一行 - 我当前的代码是这样的 - < / p>
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return self.HpFeedArray.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 10.; // you can have your own choice, of course
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] init];
headerView.backgroundColor = [UIColor clearColor];
return headerView;
}
然后,我将相关数据应用于相关单元格,如下所示 -
-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier =@"CellFeed";
feedData *f = [self.HpFeedArray objectAtIndex:indexPath.row];
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
UITableViewCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
CellHp_RecArticleWithImage *CellArticle = (CellHp_RecArticleWithImage *)cell;
CellArticle.selectionStyle = UITableViewCellSelectionStyleNone;
CellArticle.artTitle.text = f.FeedTitle;
CellArticle.artImg.text = f.FeedDesc;
CellArticle.artDate.text = f.FeedDate;
CellArticle.textLabel.backgroundColor=[UIColor clearColor];
return CellArticle;
以上显示间隔开的单元格 - 但显示相同的数据3次!任何人都可以帮助我了解我做错了什么!?
干杯 保罗
答案 0 :(得分:1)
问题出在这一行
feedData *f = [self.HpFeedArray objectAtIndex:indexPath.row];
因为如果对索引使用行,则将tableView分割为每个部分的行,因为只有一行,所以总是为0。所以解决方案是
feedData *f = [self.HpFeedArray objectAtIndex:indexPath.section];