ios - 滚动加载新图像时,表格 View 急剧移动

原文 标签 ios objective-c

我有从服务器加载jSON数据的自定义类,并且在加载该数据时,我使用AFNetworking为每个单元加载图像。但是,当我向下滚动到要加载的新图像时,会有锐化效果,而不是平滑滚动效果。有我的方法:

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

    //Create cell

    static NSString *cellIdentifier = @"cell";

    MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCellView" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }

    // Check condition, either we got objects

    if (!isDataLoaded){

        cell.myActivityIndicator = [[UIActivityIndicatorView alloc]
                        initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

        cell.myActivityIndicator.center=self.view.center;
        [cell.myActivityIndicator startAnimating];
        [self.view addSubview:cell.myActivityIndicator];

        NSLog(@"Current loading");

    }   else {

        // Hide acitivity indicator



        // Set image

//            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
//                
//                 data = [[NSData alloc] initWithContentsOfURL:[[self.objectsToShow objectAtIndex:indexPath.row]valueForKey:@"low_resolutionImage"]];
//                    UIImage *image = [[UIImage alloc] initWithData:data];
//                
//                    dispatch_async(dispatch_get_main_queue(), ^{
//                        
//                        cell.myActivityIndicator.hidden = YES;
//                        [cell.myActivityIndicator removeFromSuperview];
//                        
//                        [cell.myImageView setImage:image];
//                    });
//                
//            });

        [cell.myImageView setImageWithURL:[[self.objectsToShow objectAtIndex:indexPath.row]valueForKey:@"low_resolutionImage"]];

    }

    return cell;
}

最佳答案

不想在每次显示表格单元格时下载图像(必须异步下载)。相反,您是在首次下载图像后将其保存在数据模型中。之后,您可以简单地从模型中检索图像。我通常使用NSMutableArray来实现模型,因为添加/删除其元素更加容易。

关于ios - 滚动加载新图像时,表格 View 急剧移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34375240/

相关文章:

ios - 获取 URL 参数的值

iphone - 从 AppDelegate 呈现特定的 View Controller

ios - 使用WebView ios 6播放Youtube

iphone - 将iOS联系人同步到应用程序数据库(用作标识符引用?)

ios - 在 TabBar 中的部分之间添加分隔符

objective-c - iOS:如何使接口(interface)无法实例化?

android - “添加到主屏幕”如何打开没有浏览器组件的网页?

ios - 如何在 HealthKit 中获取 HKWorkoutActivityType 的名称?

ios - iOS错误:线程1:EXC_BAD_ACCESS(code = 1,address = 0x726f635f)?

ios - 如何确定iOS上的用户带宽