Arrays WKPickerItems和ranges
我试图在手表套件中创建一个从-273到273的选择器视图。遗憾的是,Watch Kit只允许字符串作为标题,所以我现在使用.map转换了我的范围。当我运行应用程序时,它显示的范围是从0到546,但不会变为负值。我尝试更改这两个值,但选择器始终从0开始,不会再返回 我将问题分为以下几行:Arrays WKPickerItems和ranges,arrays,swift,dictionary,range,watchkit,Arrays,Swift,Dictionary,Range,Watchkit,我试图在手表套件中创建一个从-273到273的选择器视图。遗憾的是,Watch Kit只允许字符串作为标题,所以我现在使用.map转换了我的范围。当我运行应用程序时,它显示的范围是从0到546,但不会变为负值。我尝试更改这两个值,但选择器始终从0开始,不会再返回 我将问题分为以下几行: let pickerItems: [WKPickerItem] = (-273...273).map { let pickerItem = WKPickerItem() picke
let pickerItems: [WKPickerItem] = (-273...273).map {
let pickerItem = WKPickerItem()
pickerItem.title = "\($0)"
return pickerItem
}
我刚刚试过,你的代码在选择器中显示负值。然后,当用户选择一个值时,您必须获取该值并使用它从
pickerItems
数组中检索“真实”值:
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
}
}
}