我创建了一个方法- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
UITableViewCellAccessoryDetailDisclosureButton
。
现在我想用UITableViewCellAccessoryDisclosureIndicator
代替UITableViewCellAccessoryDetailDisclosureButton
。
UITableViewCellAccessoryDetailDisclosureButton
和UITableViewCellAccessoryDetailDisclosureButton
之间有什么区别吗?
答案 0 :(得分:6)
Apple HIG建议您使用UITableViewCellAccessoryDisclosureIndicator
浏览分层数据,UITableViewCellAccessoryDetailDisclosureButton
执行某些操作,可能会调出可能会更改数据的编辑视图。但是,大多数程序员似乎忽略了这一点。
您可以像这样实现委托方法tableView:didSelectRowAtIndexPath:
:
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
[self tableView:tableView didSelectRowAtIndexPath:indexPath];
}
反之亦然。
答案 1 :(得分:2)
有区别。 UITableViewCellAccessoryDetailDisclosureButton 实际上是一个按钮,但 UITableViewCellAccessoryDisclosureIndicator 不是。
您可以使用 UITableViewCellAccessoryDisclosureIndicator 而不是 UITableViewCellAccessoryDetailDisclosureButton ,但是当您点击 tableView:accessoryButtonTappedForRowWithIndexPath:方法> UITableViewCellAccessoryDisclosureIndicator 因为它不是按钮。
答案 2 :(得分:0)
是的,他们是不同的。
当点击蓝色按钮的用户执行与点击行的其余部分不同的操作时,使用UITableViewCellAccessoryDetailDisclosureButton
,即使该行的其余部分什么都不做。
当整行可以点击时使用UITableViewCellAccessoryDisclosureIndicator
并产生相同的操作。
如果您的行为是其他原因,请使用其他机制。