我有UITableView
使用自定义UITableViewCell
来显示一些信息。我想在单元格中添加UITableViewCellAccessoryDisclosureIndicator
。
我尝试成功的每个方法都会添加雪佛龙,但是一旦表格视图向下滚动,它们就会消失。我正在使用标准dequeueReusableCellWithIdentifier
方法,当我转出对单元格的引用时,它正在重新使用它们。所有其他数据显示正常,只有V形消失。
我尝试过的事情:
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator];
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
accessoryTypeForRowWithIndexPath:
任何人都有过这种情况吗?
答案 0 :(得分:4)
可能会发生这种情况,因为您在缓存的单元格测试之外设置了附件类型:
static NSString *CellIdentifier = @"UIDocumentationCell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
[cell setText:mytext];
更好的方式,恕我直言是这样的:
static NSString *CellIdentifier = @"UIDocumentationCell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
[cell setText:mytext];
Cocoa Touch似乎不想修改单元格的缓存实例(子视图),在单元格集方法中设置公开指示符会导致指示符被缓存,并在单元格再次出现时重新绘制。