具有多个部分的表视图的嵌套枚举

时间:2019-07-09 21:04:43

标签: ios swift uitableview enums

Here是我的菜单。最初,我仅从tableView菜单中的一个部分开始,并使用enum填充单元格。现在,我想添加更多部分。我正在尝试使用嵌套的enum。我发现了这个answer和这个answer,向我展示了如何实现嵌套的enum

这是我的尝试。 Case A代表表中的section 1,Case B代表section 2,依此类推:

enum MenuOption {

    case Section0(A) // for tableView section 0
    case Section1(B) // for tableView section 1
    case Section2(C) // for tableView section 2

    enum A: Int, CaseIterable, CustomStringConvertible {

        case Categories
        case Favourites
        case Search

        var description: String {
            switch self {
            case .Categories: return "Categories"
            case .Favourites: return "Favourites"
            case .Search: return "Search"
            }
        }
    }

    enum B: Int , CaseIterable, CustomStringConvertible {

        case Notifications
        case RateThisApp

        var description: String {
            switch self {
            case .Notifications: return "Notifications"
            case .RateThisApp: return "Rate This App"
            }
        }
    }

    enum C: Int , CaseIterable, CustomStringConvertible {
        case Developer

        var description: String {
            switch self {
            case .Developer: return "App Developer"
            }
        }
    }
}

对于tableView中的cellForRowAt,我会使用类似的东西

cell.descriptionLabel.text = MenuOption.A(rawValue: indexPath.row)?.description

然后在numberOfRowsInSection中,我将返回MenuOption.A.allCases.count

但是我不想要A。我需要确定A适用于section 0B == section 1C == section 2等。但是我不知道如何将enum案例链接到tableView个部分。

关于“在Swift中枚举枚举案例”的article使我认为我正在尝试的事情是可能的,但是再次,我正在为实现而苦苦挣扎,现在不确定是否值得这样做。我相信我需要为我的MenuOption enum

合成一个CaseIterable一致性

任何帮助表示赞赏。

0 个答案:

没有答案