2015-10-24 3 views
1

Я пытаюсь сделать выборщик в наборе часов с -273 до 273. Sadly Watch Kit позволяет только строку как заголовок, поэтому я преобразовал свой диапазон с помощью .map Теперь, когда я запускаю приложение, он отображает диапазон от 0 до 546, но не пойду в отрицательный диапазон. Я попытался изменить оба значения, но сборщик всегда начинается с 0 и больше не будет возвращаться.WKPickerItems и диапазоны

Я изолировал проблему в эти строки:

let pickerItems: [WKPickerItem] = (-273...273).map { 
     let pickerItem = WKPickerItem() 
     pickerItem.title = "\($0)" 
     return pickerItem 
    } 

ответ

1

Я просто попытался это и делает ваш код показывает отрицательные значения в палитре. Затем, когда пользователь выбирает значение, которое вы должны принять значение и использовать его, чтобы получить «реальное» значение из вашего 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 
     } 

    } 
} 

enter image description here

Смежные вопросы