【发布时间】:2019-09-07 23:12:14
【问题描述】:
我有一个需要处理 9 种不同状态的表格视图。 我有两个部分包含不同的数据模型(A,B) 这两部分逻辑上相互依赖
1) !A.isEmpty
2) !B.isEmpty
3) A show expandable footer (A.count > 5)
4) B show expandable footer (B.count > 5)
5) A shows collapsable footer (user clicked on A.expandable footer)
6) B shows collapsable footer (user clicked on B.expandable footer
7) A.count > 3 && B.isEmpty
8) B.count > 3 && A.isEmpty
9) A.count > 3 && B.isEmpty && A shows collapsable footer (user clicked on A.expandable footer)
是否有处理多个状态的标准?我正在考虑创建某种状态结构。处理这个问题的“行业标准”是什么?
这是我目前使用的——许多计算变量
let numberOfCells = 5
var A.expanded = false
var B.expanded = false
var A = [Data]()
var B = [Data]()
var state5 = A.expanded
var state6 = B.expanded
var A.showFooter: Bool {
return A.count > numberOfCells
}
var B.showFooter: Bool {
return B.count > numberOfCells
}
var state7: Bool {
return A.showFooter && B.isEmpty
}
var state8: Bool {
return A.isEmpty && B.showFooter
}
var state9: Bool {
return (state7 && state6)
|| (state8 && state5)
}
【问题讨论】:
-
您看过位掩码吗?您可以有一个 9 位的变量来存储所有内容,然后您可以分别检查每个位。有很多教程可以帮助您入门
-
@Russell 这实际上是一个非常好的主意!谢谢,我想我会尝试实现这一点。
-
您在gameplaykit中有一个免费的状态机,它将为您节省很多工作。
-
@E.Coms 有趣.. 虽然这对我的问题来说可能有点矫枉过正。
标签: ios swift architecture state