我是IOS的新手,我又面临另一个问题。当我滚动一个tableview时,如何防止表格单元格中的数据消失。
我使用下面的代码在表格上加载数据......工作正常,但当表格单元格对屏幕不可见时,数据会消失。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
list = [self.listas objectAtIndex:[indexPath row]];
static NSString *CellIdentifier = @"drop";
item_drop *cell = (item_drop*) [tabela_listas dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"item_drop" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.texto_drop.text = list.nome_lista;
return cell;
}
在android中我使用了持有者来做到这一点。 IOS上有类似的东西吗?
答案 0 :(得分:0)
由于您使用的是 UITableViewCell 的自定义子类的可重用单元格,请确保在 UITableView 中注册单元格标识符,并将其与您的自定义单元格类型相关联。即:
[yourTableView registerClass:[item_drop class] forCellReuseIdentifier:@"drop"];
当您在控制 UITableView 所属视图的 UIViewController 中配置子视图时,通常会执行此操作,在 viewDidLoad
中。
有了它,你就永远不应该点击 if (cell == nil)
内的代码。