Frage

Gibt es eine Möglichkeit den Start ausgewählte Segment in einem UISegmentedControl im Interface Builder zu setzen, oder habe ich es im Code zu tun? Wenn es in dem Code ist, ist der beste Ort viewDidLoad es einstellen?

War es hilfreich?

Lösung

In Interface Builder, wenn Sie UISegmentedControl Objekt auf Ihrer Benutzeroberfläche auswählen, dann in Attribute Fenster in Segmentsteuerung gibt es Segment Drop-Down-Menü wählen Sie Segment, das Sie ausgewählt werden sollen (0,1 und so weiter) und aktivieren Sie die ‚ausgewählt‘ Option darunter.

Andere Tipps

Von Code können Sie nur self.segmentedControl.selectedSegmentIndex = someDefaultIndex tun.

Ob Sie es in viewDidLoad: setzen sollen oder nicht, hängt ganz von der Struktur Ihrer Anwendung. Zum Beispiel, wenn Ihre app beginnt und die Ansicht zum ersten Mal geladen und benötigt die Steuerung an den Wert setzen es während der vorherigen Ausführung der App hatte, dann auf jeden Fall macht es Sinn, es zu tun gibt.

Wenn Sie nicht verwenden und Storyboards einen Standardindex nach einiger Setup-Einstellung / wie ich die Vernetzung, dieser kleine Schnipsel wird etwas wählen, wenn der Benutzer nicht hat. Ich stellte dies in meiner Unterklasse von UISegmentedControl, aber man kann diese überall platzieren. ( Swift 3 )

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

Kurzversion:

if selectedSegmentIndex == UISegmentedControlNoSegment {
    selectedSegmentIndex = initialIndex
}

Längere Version

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
    }
}

Nach dem Klicken auf die segmentierte Kontrolle gehen, wo Sie die Segmente erstellt und wählen Sie die Ihnen Standard sein wollen. Dann unten, dass es durch eine Box mit „Selected“ sein. Wählen Sie das und es wird standardmäßig sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top