10

ios7 UITableViewCellAccessoryDe​​tailDisclosureButton ios6 UITableViewCellAccessoryDe​​tailDisclosureButton

勾号代表当时选中的行,左图是iOS7模拟器,右图是iOS6模拟器。

问题UITableViewCellAccessoryDetailDisclosureButton in iOS7 has two parts, one part with right arrow accessory and other is the clickable "i" button rather than iOS6. 是它是标准行为还是我做错了什么,如果它是标准的,那么在 iOS7 中处理 UITableViewCellAccessoryDe​​tailDisclosureButton 的正确方法应该是什么?

4

2 回答 2

15

mahboudz 是正确的,因为现在行为已经不同了。

如果您仅设置 DetailButton,那么在 iOS7 中,您将看到 (i) 作为可点击的附件按钮。但是在 iOS6 中你什么都看不到。因此,使用 SDK7.0 弹出详细视图accessoryButtonTappedForRowWithIndexPath在 iOS6 设备上不起作用,因为没有显示任何附件。

使用反向配置有类似的问题,但你会使用它didSelectRowAtIndexPath

我发现的解决方法是应用类似的方法来处理 iOS7 中的扩展布局。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    cell.accessoryType =  UITableViewCellAccessoryDetailButton;
} else {
    cell.accessoryType =  UITableViewCellAccessoryDetailDisclosureButton;
}

所以在 iOS7 中我只使用 DetailButton 而在 iOS7 之前的版本中我使用DetailDiscloureButton.

于 2013-11-02T14:49:10.293 回答
8

这是正确的行为。在 iOS 7 中,您可以使用UITableViewCellAccessoryDetailDisclosureButton.

如果你只喜欢“i”按钮,你会使用UITableViewCellAccessoryDetailButton,如果你只喜欢“披露指示器”,你会使用 UITableViewCellAccessoryDisclosureIndicator.

于 2013-09-11T12:07:24.403 回答