我需要水平显示多个(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];
}
我的问题是,每当我将一个细胞出列时,我就会得到一个无细胞。如果有更好的方法,请告诉我。我只是想测试这个,我不能完全称之为一个坏方法,直到我可以让表视图实际出列我的单元格!
谢谢!