如何在 Swift 中对 Eureka 库中的 MultipleSelectorRow 值进行排序?
How to sort MultipleSelectorRow values in Eureka library in Swift?
我的用例描述了用户可以 select 从 A 到 F 的多个阶段的字段的必要性。为了实现这一点,我使用了 MultipleSelectorRow n Eureka 库:
<<< MultipleSelectorRow<String>("phase") {
[=11=].title = "Phase"
[=11=].options = ["A", "B", "C", "D", "E", "F"]
}
当用户 select 的任何选项我希望值显示按字母顺序 selected 选项 "A,B,C..." 时,发生的情况是始终显示文本以随机顺序,我试图通过扩展代码来实现字母顺序:
<<< MultipleSelectorRow<String>("phase") {
[=12=].title = "Phase"
[=12=].options = ["A", "B", "C", "D", "E", "F"]
}.onChange { row in
row.value = Set(row.value!.sort())
}
表达式计算正确,但我仍然无法得到按字母顺序排序的值。
在发布问题时,我意识到 Eureka 使用 Set 来存储字段,它永远不会被排序。
在这种情况下,我更改了 cellUpdate 方法以使用如下所述的排序值更新 detailTextLabel:
<<< MultipleSelectorRow<String>("phase") {
[=10=].title = "Phase"
[=10=].options = ["A", "B", "C", "D", "E", "F"]
}.cellUpdate { cell, row in
if (row.value != nil) {
cell.detailTextLabel?.text = row.value!.sort().joinWithSeparator(", ")
}
}
我还建议修复 Eureka 库以默认按字母顺序排序。有关 https://github.com/xmartlabs/Eureka/pull/474
的更多详细信息
更新
这已在 Eureka 1.7.0 (2016.07.07)
上修复并发布
我的用例描述了用户可以 select 从 A 到 F 的多个阶段的字段的必要性。为了实现这一点,我使用了 MultipleSelectorRow n Eureka 库:
<<< MultipleSelectorRow<String>("phase") {
[=11=].title = "Phase"
[=11=].options = ["A", "B", "C", "D", "E", "F"]
}
当用户 select 的任何选项我希望值显示按字母顺序 selected 选项 "A,B,C..." 时,发生的情况是始终显示文本以随机顺序,我试图通过扩展代码来实现字母顺序:
<<< MultipleSelectorRow<String>("phase") {
[=12=].title = "Phase"
[=12=].options = ["A", "B", "C", "D", "E", "F"]
}.onChange { row in
row.value = Set(row.value!.sort())
}
表达式计算正确,但我仍然无法得到按字母顺序排序的值。
在发布问题时,我意识到 Eureka 使用 Set 来存储字段,它永远不会被排序。
在这种情况下,我更改了 cellUpdate 方法以使用如下所述的排序值更新 detailTextLabel:
<<< MultipleSelectorRow<String>("phase") {
[=10=].title = "Phase"
[=10=].options = ["A", "B", "C", "D", "E", "F"]
}.cellUpdate { cell, row in
if (row.value != nil) {
cell.detailTextLabel?.text = row.value!.sort().joinWithSeparator(", ")
}
}
我还建议修复 Eureka 库以默认按字母顺序排序。有关 https://github.com/xmartlabs/Eureka/pull/474
的更多详细信息更新 这已在 Eureka 1.7.0 (2016.07.07)
上修复并发布