ios – 在uicollectionview中加载延迟

前端之家收集整理的这篇文章主要介绍了ios – 在uicollectionview中加载延迟前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这里是我的collectionview的代码显示记录,但加载真的请告诉我如何实现延迟加载在这我还有一个占位符pic在我的项目

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    CollectionViewCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MJCell" forIndexPath:indexPath];

// Setup image name
    NSString *url = [[RSSOutputData objectAtIndex:indexPath.row]xmllink];
    UIImage *img = nil;
    NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:url]];
    img = [[UIImage alloc] initWithData:data];

    cell.MJImageView.image = img;
    return cell;
}

现在它工作但很慢.

解决方法

使用GCD进行延迟加载非常容易.

// Create a queue for the operations
    dispatch_queue_t queue = dispatch_queue_create("photoList",NULL);

    // Start getting the data in the background
    dispatch_async(queue,^{
        NSData* photoData = [NSData dataWithContentsOfURL:[NSURL URLWithString:object.photoURL]];
        UIImage* image = [UIImage imageWithData:photoData];

        // Once we get the data,update the UI on the main thread
        dispatch_sync(dispatch_get_main_queue(),^{
           cell.photoImageView.image = image;
        });
    });

猜你在找的Xcode相关文章