UITableView:如何使UITableViewCellAccessoryDe​​tailDisclosureButton出现在选择中?

时间:2010-01-19 15:32:41

标签: iphone uitableview

我希望我的表视图上的所有行都使用UITableViewCellAccessoryNone(例如右边没有按钮),除非选中它们,此时我想使用UITableViewCellAccessoryDe​​tailDisclosureButton。例如。只有一行(如果没有选择则没有),一次只有一个按钮。

这可能吗?实现accessoryTypeForRowWithIndexPath的常规操作似乎不能动态地工作 - 例如无论选择什么,它都只被调用一次。

由于

2 个答案:

答案 0 :(得分:3)

注意其他人尝试这个...现在折旧了accessoryTypeForRowWithIndexPath委托方法,如果你尝试的话,你会收到这条消息:

  

警告:使用旧版单元格布局   委托执行   的tableView:accessoryTypeForRowWithIndexPath:   在。请   删除你的实现   方法并设置单元格属性   accessoryType和/或   editingAccessoryType移动到   新的单元格布局行为。这种方法   将来不再被召唤   释放。

相反,在UITableViewCell子类中实现setSelected方法......例如

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {

[super setSelected:selected animated:animated];

// Configure the view for the selected state

if (selected) {
    self.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
} else {
    self.accessoryType = UITableViewCellAccessoryNone;
}

..然后使用reloadRowsAtIndexPaths:withRowAnimation方法,如上所述。

答案 1 :(得分:1)

如果更改单元格的内容,则需要在tableview上调用-reloadRowsAtIndexPaths:withRowAnimation:。