【问题标题】:How to check the availability of UITableViewCellAccessoryDetailButton?如何检查 UITableViewCell 附件详细信息按钮的可用性?
【发布时间】:2014-09-28 13:30:02
【问题描述】:

我需要一个表格单元格的附件类型与 iOS 7 和 6 兼容。我尝试使用通常的 address check 测试附件类型的可用性,但编译器抱怨

不能获取类型为“NSInteger”(又名“int”)的右值的地址

self.accessoryType = (&UITableViewCellAccessoryDetailButton == nil)
    ? UITableViewCellAccessoryDetailDisclosureButton
    : UITableViewCellAccessoryDetailButton;

【问题讨论】:

    标签: ios cocoa-touch uitableview ios7


    【解决方案1】:

    没有办法在运行时检查枚举值是否存在。它只是在编译时转换为整数。

    您唯一真正的选择是执行一些其他运行时检查,这些检查将在 iOS 6 中失败并在 iOS 7(或更高版本)中成功。

    也许是这样的:

    if ([self respondsToSelector:@selector(separatorInset)]) {
        self.accessoryType = UITableViewCellAccessoryDetailButton; // iOS 7 or later
    } else {
        self.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; // iOS 6
    }
    

    此解决方案将来可能会失败,但到那时您可能不再支持 iOS 6。

    【讨论】:

    • 我不想在 iOS 7 上这样。Look at what it looks like。它将包括人字形和“i”。我只需要“i”本身。
    • 奇怪。我从来没有在我的应用程序中看到过。我只得到带圆圈的“i”。
    • 哇哦。我才明白为什么。我有一个在整个应用程序中使用的自定义单元格类,并且总是基于accessoryType 生成自定义accessoryView。在使用 iOS 7 的去年,我从来不知道UITableViewCellAccessoryDetailDisclosureButton 会同时显示这两个图标。我很快就会删除这个答案。
    • 框架开发者在这方面没有正确升级iOS 7。他们应该保持UITableViewCellAccessoryDetailDisclosureButton 不变——只显示一个按钮。然后他们可以引入UITableViewCellAccessoryDetailButton 来显示按钮和 V 形。但他们把这一切都逆转了。
    • 这很好。我已经用一种可能的解决方法更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多