我有一个uitableview,每个单元格都有一个滚动视图作为子视图.scrollview中有一堆图像.因此,当我更改数据源中的数据并在调用重新加载表后,图像不会更改,但是当我删除出队时,重新加载新数据.是否有任何方法来删除出队中的内容,以便我不会得到旧的数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"looser"];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
scrollview=[[myscrollView alloc]initwitharray:imagearray];
[cell.contentView addSubview:scrollview];
}
}
Run Code Online (Sandbox Code Playgroud)
Abe*_*ant 10
tableview的工作原理如下:
屏幕上有一定数量的单元格空间,比方说7就是一个例子.tableview将询问您索引0到6的7个单元格.
如果顶部单元格通过滚动离开屏幕,则它将被放置在可重复使用的单元格队列中.桌面视图现在有6个单元格.
现在底部出现一个新的,tableview要求索引7处的单元格.你调用dequeueReusableCell,然后你得到一个在前面的那个.
tableView不知道你的单元格是什么样的,因为它可以是子类,所以它不会对它进行任何更改.您可以根据表格单元的构造方法来清空它,然后用正确的新数据填充它.
tableview这样工作的原因是为了提高性能.除了每次滚动运动可能需要检查100个视图(或者大部分被忽略,这也花费时间)之外,它最多可以有7个.
所以简而言之,没有.在UITableView中没有从可重用单元格中删除数据的默认方法,因为UITableView不能也不应该知道它们是什么类型的单元格.当tableview将它们提供给您时,您可以清除单元格.
创建一个自定义单元格并生成一个方法
- (void) prepareForReuse{}
Run Code Online (Sandbox Code Playgroud)
你从一个单元格中清除所有数据,输出将是一个空单元格。
| 归档时间: |
|
| 查看次数: |
4770 次 |
| 最近记录: |