UITableViewCell - 自定义单元格边距

时间:2013-11-05 17:35:54

标签: ios objective-c uitableview

我构建了一个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次!任何人都可以帮助我了解我做错了什么!?

干杯 保罗

1 个答案:

答案 0 :(得分:1)

问题出在这一行

feedData *f = [self.HpFeedArray objectAtIndex:indexPath.row];

因为如果对索引使用行,则将tableView分割为每个部分的行,因为只有一行,所以总是为0。所以解决方案是

feedData *f = [self.HpFeedArray objectAtIndex:indexPath.section];