UITableViewCellAccessoryDe​​tailDisclosureButton和UITableViewCellAccessoryDisclosureIndicator之间有什么区别吗

时间:2011-10-11 04:59:47

标签: objective-c xcode uitableview

我创建了一个方法- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath { UITableViewCellAccessoryDetailDisclosureButton

现在我想用UITableViewCellAccessoryDisclosureIndicator代替UITableViewCellAccessoryDetailDisclosureButton

UITableViewCellAccessoryDetailDisclosureButtonUITableViewCellAccessoryDetailDisclosureButton之间有什么区别吗?

3 个答案:

答案 0 :(得分:6)

Apple HIG建议您使用UITableViewCellAccessoryDisclosureIndicator浏览分层数据,UITableViewCellAccessoryDetailDisclosureButton执行某些操作,可能会调出可能会更改数据的编辑视图。但是,大多数程序员似乎忽略了这一点。

您可以像这样实现委托方法tableView:didSelectRowAtIndexPath:

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
    [self tableView:tableView didSelectRowAtIndexPath:indexPath];
}

反之亦然。

答案 1 :(得分:2)

有区别。 UITableViewCellAccessoryDe​​tailDisclosureButton 实际上是一个按钮,但 UITableViewCellAccessoryDisclosureIndicator 不是。

您可以使用 UITableViewCellAccessoryDisclosureIndicator 而不是 UITableViewCellAccessoryDe​​tailDisclosureButton ,但是当您点击 tableView:accessoryButtonTappedForRowWithIndexPath:方法> UITableViewCellAccessoryDisclosureIndicator 因为它不是按钮。

答案 2 :(得分:0)

是的,他们是不同的。

当点击蓝色按钮的用户执行与点击行的其余部分不同的操作时,使用UITableViewCellAccessoryDetailDisclosureButton,即使该行的其余部分什么都不做。

当整行可以点击时使用UITableViewCellAccessoryDisclosureIndicator并产生相同的操作。

如果您的行为是其他原因,请使用其他机制。