我尝试使用静态变量填充UIPickerView
选项。创建度量标准高度列表而不是for循环是否有更加明智的方法?
这是我得到的:
static var heightMetric: [(key: String, value: String)] {
var items: (key: String, value: String) = []
for item in 30...330 {
items.append(("\(item)", "\(item) cm"))
}
return items
}
对于英制形式,有什么想法以5' 8"
格式创建选项列表以填充UIPickerView
吗?
答案 0 :(得分:4)
实际上不需要for循环:
static var heightMetric: [(key: String, value: String)] = {
return (30...330).map {
("\($0)", "\($0) cm")
}
}()
您甚至可以删除显式类型,只需编写static var heightMetric = { ...
关于英尺和英尺的形式,我不知道有任何内置功能。你要么必须通过做一些数学运算来计算基于厘米值的值,要么创建一个与上面类似的map
,你可以利用%
运算符将数字分成英尺和英寸。例如:
static var heightMetricImperial = {
return (12...120).map {
("\($0)", "\($0 / 12)' \($0 % 12)\"")
}
}()
完整示例:
class K {
static var heightMetric = {
(30...330).map {
("\($0)", "\($0) cm")
}
}()
static var heightMetricImperial = {
(12...120).map {
("\($0)", "\($0 / 12)' \($0 % 12)\"")
}
}()
}
print(K.heightMetric)
print(K.heightMetricImperial)