WKPickerItems 和范围
WKPickerItems and ranges
我正在尝试在 Watch Kit 中创建一个从 -273 到 273 的选择器视图。遗憾的是 Watch Kit 只允许将字符串作为标题,所以我使用 .map 转换了我的范围现在当我 运行 应用程序时显示从 0 到 546 的范围,但不会进入负数范围我尝试更改这两个值,但选择器始终从 0 开始并且不会再返回。
我将问题分为以下几行:
let pickerItems: [WKPickerItem] = (-273...273).map {
let pickerItem = WKPickerItem()
pickerItem.title = "\([=10=])"
return pickerItem
}
我刚刚试了一下,您的代码确实在选择器中显示了负值。然后,当用户选择一个值时,您必须获取该值并使用它从 pickerItems
数组中检索 "real" 值:
class InterfaceController: WKInterfaceController {
@IBOutlet var picker: WKInterfacePicker!
var pickerItems: [WKPickerItem]?
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
pickerItems = (-273...273).map {
let pickerItem = WKPickerItem()
pickerItem.title = "\([=10=])"
return pickerItem
}
picker.setItems(pickerItems)
}
@IBAction func pickerDidChange(value: Int) {
let pickedItem = pickerItems![value] // value = 0..576
if let pickedValue = Int(pickedItem.title!) {
print(pickedValue) // -273..273
}
}
}
我正在尝试在 Watch Kit 中创建一个从 -273 到 273 的选择器视图。遗憾的是 Watch Kit 只允许将字符串作为标题,所以我使用 .map 转换了我的范围现在当我 运行 应用程序时显示从 0 到 546 的范围,但不会进入负数范围我尝试更改这两个值,但选择器始终从 0 开始并且不会再返回。
我将问题分为以下几行:
let pickerItems: [WKPickerItem] = (-273...273).map {
let pickerItem = WKPickerItem()
pickerItem.title = "\([=10=])"
return pickerItem
}
我刚刚试了一下,您的代码确实在选择器中显示了负值。然后,当用户选择一个值时,您必须获取该值并使用它从 pickerItems
数组中检索 "real" 值:
class InterfaceController: WKInterfaceController {
@IBOutlet var picker: WKInterfacePicker!
var pickerItems: [WKPickerItem]?
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
pickerItems = (-273...273).map {
let pickerItem = WKPickerItem()
pickerItem.title = "\([=10=])"
return pickerItem
}
picker.setItems(pickerItems)
}
@IBAction func pickerDidChange(value: Int) {
let pickedItem = pickerItems![value] // value = 0..576
if let pickedValue = Int(pickedItem.title!) {
print(pickedValue) // -273..273
}
}
}