2015-11-20 23 views
6

Dato che UIDatePicker non è disponibile in tvOS, cosa si usa per chiedere all'utente data/ora? Esiste una nuova classe che sostituisce UIDatePicker?Sostituzione UIDatePicker per tvOS?

Grazie

+0

Credo non ci sia implementazione corrente per un UIDatePicker. Ne cercavo uno per il mio progetto e alla fine ho simulato uno con una vista tabella con 3 sezioni (gg-MM-aaaa). Spero che sia d'aiuto :) –

risposta

1

Attualmente sembra che serve per costruire qualcosa da soli. C'è un bel concetto con qualche spiegazione here.

1

Poiché Apple non fornisce un selettore di date per tvOS, non esiste una soluzione standard.

Tuttavia, sarebbero alcuni passi possibili:

  1. Progettare e implementare un'interfaccia utente per manipolare i componenti della data (= anno, mese, giorno, ora, minuto).
  2. Tieni traccia della data attualmente selezionata, ad es. utilizzando una proprietà memorizzata. Un'etichetta di data può essere aggiornata utilizzando osservatori di proprietà (ad esempio didSet).
  3. Implementare metodi per manipolare la data selezionata - componente per componente - e collegarli all'interfaccia utente.

Ricordate che date e calcoli di data sono complicati, in modo da utilizzare i concetti data prevista e metodi (!) - dare un'occhiata al Calendar e DateComponents nella documentazione.

Vi troverete metodi utili, ad esempio:

  • range(of: Calendar.Component, in: Calendar.Component, for: Date) può essere utilizzato per trovare il numero di mesi in un anno, giorni in un mese (e così via).

  • dateComponents(Set<Calendar.Component>, from: Date) e date(from: DateComponents) può essere utilizzato per convertire da date per componenti della data e viceversa.

  • Inoltre, isValidDate(in: Calendar) può essere utile per verificare che la data componenti costituiscano una data valida in un determinato calendario.


Di seguito un link per l'interfaccia utente (con UISegmentedControl s) che ho sviluppato per la mia app, tuttavia, ci sono altre soluzioni, come quella legata da ergoon.

User interface with segmented controls.

Nel mio caso, il selettore data è presentato modale dopo aver selezionato una cella di vista tabella in un modulo di immissione.