更快的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