【问题标题】:Load More Cell UITableView加载更多单元格 UITableView
【发布时间】:2013-12-12 07:07:11
【问题描述】:

我正在尝试将 Load More Cell 添加到我的表格视图中。从 5 行开始,当我单击“加载更多单元格”并添加更多 5 行时。所有工作正常,无需加载更多单元格有图像,但我不想要它。我试图修复它,但它不起作用。

表格开始 http://i.stack.imgur.com/Ld2ED.png

点击加载更多单元格后的表格 http://i.stack.imgur.com/A5xjE.png

这是我的cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

#define IMAGE_VIEW_TAG 99
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (indexPath.section == 0) {
        //create new cell
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        //add AsyncImageView to cell
        AsyncImageView *imageView = [[AsyncImageView alloc] initWithFrame:CGRectMake(5.0f, 5.0f, 50.0f, 50.0f)];
        imageView.contentMode = UIViewContentModeScaleAspectFill;
        imageView.clipsToBounds = YES;
        imageView.tag = IMAGE_VIEW_TAG;
        [cell addSubview:imageView];
        [imageView release];

        //common settings
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.accessoryType = UITableViewCellAccessoryNone;
        cell.indentationWidth = 44.0f;
        cell.indentationLevel = 1;
        //get image view
        AsyncImageView *imgView = (AsyncImageView *)[cell viewWithTag:IMAGE_VIEW_TAG];

        //cancel loading previous image for cell
        [[AsyncImageLoader sharedLoader] cancelLoadingImagesForTarget:imgView];

        //load the image

        imgView.imageURL = [imageURLs objectAtIndex:indexPath.row];

        //display image path
        cell.textLabel.text = [tableData objectAtIndex:indexPath.row ];


    }


   else if (indexPath.section == 1) {

        cell.textLabel.text = [NSString stringWithFormat:NSLocalizedString(@"Load More...", @"The text to display to load more content"), kNumberOfItemsToAdd];
        cell.imageView.image = Nil;
        cell.textLabel.textColor = [UIColor colorWithRed:0.196f green:0.3098f blue:0.52f alpha:1.f];
        cell.textLabel.font = [UIFont boldSystemFontOfSize:12.f];

    }

段数

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    if (numberOfItemsToDisplay == [tableData count]) {
        return 1;
    }
    return 2;
}



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//    return 5;
//    return tableData.count;
    if (section == 0) {
        return numberOfItemsToDisplay;
    } else {
        return 1;
    }


}

【问题讨论】:

  • 想办法检测“加载更多”表格单元格,然后将imageView设置为nil
  • 我设置 cell.imageView.image = Nil;但 Load More 单元格仍然有 Image
  • 您能否更新您的代码以反映您在评论中提到的更改?
  • 我设置我设置 cell.imageView.image = Nil;在“else if (indexPath.section == 1)”中,因为第 1 节中的 loadmore 单元
  • 从您的图片来看,“加载更多”单元格似乎不在其自己的部分中。看起来它是第 0 节中的最后一行。您确定“加载更多”单元格在第 1 节中吗?

标签: ios uitableview


【解决方案1】:

替换这个:

else if (indexPath.section == 1) {
  cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
  ...
  ...
  ...
}

【讨论】:

  • 非常感谢!没想到这么简单
  • 绝对的,抱歉我忘记了:D
  • 继续前进,您可能需要在分配新单元之前检查是否 (cell == nil)。由于 dequeueReusableCell 可能会返回一个可用的单元格...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
  • 2012-04-22
  • 2021-03-21
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多