我正试着在-273到273之间的手表套件中选择一个视图。遗憾的是,手表套件只允许一个字符串作为标题,所以我使用.map转换了我的范围。现在,当我运行应用程序时,它显示的范围从0到546,但不会进入负范围我尝试更改两个值,但选择器总是从0开始,不会再返回。
我把问题分为以下几行:
let pickerItems: [WKPickerItem] = (-273...273).map {
let pickerItem = WKPickerItem()
pickerItem.title = "\($0)"
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 = "\($0)"
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
}
}
}