UIImageView 在滚动之前不会加载到 UITableViewCell 中

Posted

技术标签:

【中文标题】UIImageView 在滚动之前不会加载到 UITableViewCell 中【英文标题】:UIImageView not loading in UITableViewCell until scrolled 【发布时间】:2013-03-04 21:25:57 【问题描述】:

我有一个 UIImageView 的问题,我在 tableview:cellForRowAtIndexPath: 内设置,当 UITableView 在视图中加载底部单元格时,没有像这样将图像加载到 UIImageView UITableViewCells 的其余部分,但是一旦我滚动它就会自行解决。但是一旦这样做,顶部的 UItableViewCell 就会丢弃它的图像!直到我将其滚动回完整视图。

我所做的是在 Interface Builder 中创建 UITableViewCell 并且我有一个空白的 UIImageView,然后我设置 UIImage 我要放置在 ViewDidLoad 中的 UIImageView 中,然后在 tableview:CellForRowAtIndexPath: 中设置它然后返回单元格。

这是代码

//.m
- (void)viewDidLoad

//..
storageCalcIconImage = [UIImage imageNamed:@"CALC.png"];


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    SeriesSearchResultItem *myObj = [[SeriesSearchResultItem alloc] init];


    if (indexPath.section == 0) 

        //call obj array with all of the values from my sorting algorithum
        myObj = (SeriesSearchResultItem*)[dataArrayOfObjects objectAtIndex:indexPath.row];
//.. assinging storageCalcIconImage inside if statment
firstSpaceImage.image = storageCalcIconImage;
//..

    return cell;

tableView:CellForRowAtIndexPath 中发生了很多事情,但我决定放弃与图像问题无关的内容。希望你们能看到我正在犯的错误,但我还没有...任何帮助将不胜感激.

【问题讨论】:

【参考方案1】:

这是在 tableView 中使用可重用单元格的预期结果。如果您想避免这种行为,您应该为 tableView 的每一行创建一个单元格,而不是使用dequeueReusableCellWithIdentifier。 但是,如果您要显示很多行,预计会产生巨大的性能影响。

【讨论】:

如果您显示表格视图单元格的动态数量和这些单元格的信息,如何为每一行创建一个单元格? 您的 tableView 通常会显示 NSArray 对象的内容。当你改变这个 NSArray 的内容时,你只需要在你的 tableView 上调用reloadData 来显示刷新的数据。 cellForRowAtIndexPath 只是在这里向您的 tableView 指示如何在特定 indexPath 处显示一行。

以上是关于UIImageView 在滚动之前不会加载到 UITableViewCell 中的主要内容,如果未能解决你的问题,请参考以下文章

UIView 不会在 UIScrollView 内垂直滚动

UIImageView 滚动暂停一秒钟

在我滚动之前,数据不会加载到 UITableView 中

在 tableview 单元格中将图像设置为 UIImageView 会使滚动和旋转变慢

使用 UIImageView+AFNetworking,图像直到滚动才会出现

在中心视图上滑动时,使用 iCarousel 加载 webView 不会滚动