更快的UICollectionView单元格

有很多答案将图像加载到UITableViews或UICollectionViews中。 但是如果我的UICollectionView显示来自其他视图控制器的视图呢?

在我的UICollectionViewCell子类中说我有这样的:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {

        self.catViewController = [[CatViewController alloc] initWithNibName:nil bundle:nil];
        self.catViewController.view.frame = self.bounds;
        [self addSubview:self.catViewController.view];
    }
    return self;
}

并在我的集合视图数据源:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    MyCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:kSomeId forIndexPath:indexPath];

    cell.catViewController.data = self.data[indexPath.row]; //see below

    return cell;
}

catViewController为数据属性设置了一个setter。 当这个属性被设置时,猫会加载它的图像,以及该视图的一些其他相关图像。 那么,如何正确地重用MyCell单元,以便集合视图在每次创建(或重新使用)单元时不会出现断断续续的情况? 每个MyCell都占用水平滚动的集合视图的全部宽度,因此每当新的单元格滚动到视图中时,集合视图暂时停顿。


对于高性能CollectionView单元,在iOS10中使用xcode8中的以下新东西

在你的ViewController中实现协议“UICollectionViewDataSourcePrefetching”

类ViewController:UIViewController,UICollectionViewDataSourcePrefetching {

将以下代表设置为故事板中的收藏视图(请参阅附图)或以编程方式

ViewController的 viewDidLoad方法中

collectionView.delegate = self

collectionView.dataSource = self

collectionView.prefetchDataSource = self 在这里输入图像描述

链接地址: http://www.djcxy.com/p/91641.html

上一篇: Faster UICollectionView cells

下一篇: Using UICollectionView scrollToItemAtIndexPath to return to last selected cell