多个UITableViews作为一个UICollectionview的单元格,更有效的单元重用/创建

时间:2014-07-21 19:36:24

标签: ios objective-c uitableview uicollectionview

我需要水平显示多个(n)表视图。我正在使用UICollectionView,其中每个集合视图单元格都有一个UITableView。每个tableview占据屏幕的大部分,一次显示三个tableview(三个单元格),只有几个像素的左右桌面视图显示没有滚动时。所有表视图都是同一个类的对象,并且只使用一种类型的单元格。

我的问题是每次滚动显示下一个tableview时,必须分配和初始化tableview中的所有单元格。这非常昂贵,如果新的tableview有一整套要显示的单元格,则会有明显的第二次冻结。我有想法在我的父类(持有UICollectionView的那个)中创建一个UITableView,并将其称为prototypeTableView,当我创建tableview单元格时,我将prototypeTableView设置为该单元格的属性(tableview)。

这是我的Parent类中包含UICollectionView的代码。我将prototypeTableView设置为

    CollViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CollViewReuse forIndexPath:indexPath];
    cell.theTableView.prototypeTableView = self.prototypeTableView;

这是我的UITableView子类

中的代码
MyTableViewCell *cell = [self.prototypeTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[MyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

我的问题是,每当我将一个细胞出列时,我就会得到一个无细胞。如果有更好的方法,请告诉我。我只是想测试这个,我不能完全称之为一个坏方法,直到我可以让表视图实际出列我的单元格!

谢谢!

0 个答案:

没有答案