我有一个类似的结构:
struct SectionInfo {
enum AccountSectionInfo: Int, CaseIterable {
case accountCreationDate
case referredBy
case referralCount
}
enum StatisticsSectionInfo: Int, CaseIterable {
case tasksCompleted
case pointsScored
}
// return AccountSectionInfo for index 0, for 1 return StatisticsSectionInfo
func section(forIndex index: Int) -> XXX {}
}
我想像这样在TableView中使用它:
cellForRow(at: IndexPath) -> UITableViewCell {
let section = SectionInfo.section(at: indexPath.section)
if section == AccountInfoSection.rawValue {
}
}
在Swift中有可能吗?
答案 0 :(得分:0)
基本上我想拥有一个索引(indexPath.section),并且想要基于索引(行枚举)获取结构的某个成员(枚举)
因此,您的结构旨在用作表视图数据源的模型?那是一个非常糟糕的模型。自然的方式是这样的:
struct Row {
// properties needed to populate a row
}
struct Section {
let title : String // or whatever else you need to populate section header
var rows : [Row]
}
var model : [Section]
现在,您可以获得model[indexPath.section].rows[indexPath.row]
的行。