披露指标消失了吗?

时间:2009-05-26 21:28:50

标签: iphone cocoa-touch user-interface

我有UITableView使用自定义UITableViewCell来显示一些信息。我想在单元格中添加UITableViewCellAccessoryDisclosureIndicator

我尝试成功的每个方法都会添加雪佛龙,但是一旦表格视图向下滚动,它们就会消失。我正在使用标准dequeueReusableCellWithIdentifier方法,当我转出对单元格的引用时,它正在重新使用它们。所有其他数据显示正常,只有V形消失。

我尝试过的事情:

  1. cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator];
  2. [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
  3. accessoryTypeForRowWithIndexPath:
  4. 任何人都有过这种情况吗?

1 个答案:

答案 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似乎不想修改单元格的缓存实例(子视图),在单元格集方法中设置公开指示符会导致指示符被缓存,并在单元格再次出现时重新绘制。