我希望我的表视图上的所有行都使用UITableViewCellAccessoryNone(例如右边没有按钮),除非选中它们,此时我想使用UITableViewCellAccessoryDetailDisclosureButton。例如。只有一行(如果没有选择则没有),一次只有一个按钮。
这可能吗?实现accessoryTypeForRowWithIndexPath的常规操作似乎不能动态地工作 - 例如无论选择什么,它都只被调用一次。
由于
答案 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:。