Domanda

Esiste un modo per impostare il segmento selezionato iniziale in un UISegmentedControl in Interface Builder o devo farlo nel codice? Se è nel codice, viewDidLoad è il posto migliore per impostarlo?

È stato utile?

Soluzione

In Interface Builder quando selezioni l'oggetto UISegmentedControl sull'interfaccia utente, quindi nel riquadro degli attributi, nel controllo del segmento c'è il menu a discesa del segmento, seleziona il segmento che vuoi selezionare (0,1 e così via) e spunta l'opzione 'selezionato' sotto di esso.

Altri suggerimenti

Dal codice, puoi semplicemente fare self.segmentedControl.selectedSegmentIndex = someDefaultIndex .

L'opportunità o meno di impostarlo in viewDidLoad: dipende interamente dalla struttura dell'applicazione. Ad esempio, se l'app si sta avviando e sta caricando la vista per la prima volta e deve impostare il controllo sul valore che aveva durante la precedente esecuzione dell'app, allora ha sicuramente senso farlo lì.

Se non usi gli storyboard e vuoi impostare un indice predefinito dopo una configurazione / rete come me, questo piccolo frammento selezionerà qualcosa se l'utente non lo ha fatto. L'ho inserito nella mia sottoclasse di UISegmentedControl , ma è possibile posizionarlo ovunque. ( Swift 3 )

Decl: var UISegmentedControlNoSegment: Int { get }
Desc: A segment index value indicating that there is no selected segment. See selectedSegmentIndex for further information.

Versione breve:

if selectedSegmentIndex == UISegmentedControlNoSegment {
    selectedSegmentIndex = initialIndex
}

Versione più lunga

func reloadData() {
    guard let numberOfItems = dataSource?.numberOfItems() else {
        return
    }

    removeAllSegments()

    for index in 0...numberOfItems {
        insertSegment(with: $image, at: index, animated: false)
    }

    if selectedSegmentIndex == UISegmentedControlNoSegment {
        selectedSegmentIndex = initialIndex
    }
}

Dopo aver fatto clic sul controllo segmentato, vai al punto in cui hai creato i segmenti e scegli quello che desideri sia predefinito. Quindi di seguito verrà visualizzato un riquadro con " Selezionato " da esso. Seleziona quello e sarà di default.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top