2016-08-21 10 views
0

Ich habe eine iOS App mit Xcode und Swift erstellt. Ich möchte UISegmentedControl mit drei Tabs verwenden. Mit diesen Tabs kann ich zwischen drei ContainerViews wechseln.UISegmentedControl kann nicht mit drei Registerkarten und ContainerView verwendet werden

Welche Zahlen muss ich in die Alpha-Felder eingeben? 0, 1 und 2? Denn wenn ich 2 setze, wird immer wieder auf 1 zurückgesetzt. Warum das? Wie kann ich das machen?

Dies ist der Code, den ich mit den Registerkarten mit der ContainerViews verbinden:

@IBAction func switchSegmentedControll(sender: UISegmentedControl) { 
     if sender.selectedSegmentIndex == 0 { 
      UIView.animateWithDuration(0.5, animations: { 
       self.segmentedControllFirst.alpha = 1 
       self.segmentedControllSecond.alpha = 0 
//    self.segmentedControllThird.alpha = 0 
      }) 
     } else { 
      UIView.animateWithDuration(0.5, animations: { 
       self.segmentedControllFirst.alpha = 0 
       self.segmentedControllSecond.alpha = 1 
//    self.segmentedControllThird.alpha = 1 
      }) 
     } 
    } 
+0

Was Sie als „Alpha-Feld“ das einzige, was ich sehe, tun die Transparenzkontrolle (der Alpha-Wert ist der Ansicht) – FredericP

+0

einen Blick auf https Nehmen: // developer. apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/UISegmentedControl.html – FredericP

+0

Warum legen Sie den Alpha-Wert für andere Segmente fest? –

Antwort

0

Ich denke, ich habe gerade die Lösung gefunden. Es war ein Missverständnis von mir selbst. Ich wusste nicht, was Alpha ist und wie der Code, den ich verwende, funktioniert.

Dies ist der Arbeitscode:

@IBAction func switchSegmentedControll(sender: UISegmentedControl) { 
    if sender.selectedSegmentIndex == 0 { 
     UIView.animateWithDuration(0.5, animations: { 
      self.segmentedControllFirst.alpha = 1 
      self.segmentedControllSecond.alpha = 0 
      self.segmentedControllThird.alpha = 0 
     }) 
    } else if sender.selectedSegmentIndex == 1 { 
     UIView.animateWithDuration(0.5, animations: { 
      self.segmentedControllFirst.alpha = 0 
      self.segmentedControllSecond.alpha = 1 
      self.segmentedControllThird.alpha = 0 
     }) 
    } else { 
     UIView.animateWithDuration(0.5, animations: { 
      self.segmentedControllFirst.alpha = 0 
      self.segmentedControllSecond.alpha = 0 
      self.segmentedControllThird.alpha = 1 
     }) 
    } 
} 
2

Wenn Sie drei Registerkarten haben, dann stellen Sie das Segments Feld auf ‚3‘ wie unten in Screenshot gezeigt:

enter image description here

alpha-Wert im Bereich von 0 bis 1 und ist für die Sichtbarkeit verwendet. Sie können den Alpha-Wert nicht mehr als 1

+0

Sie sollten Mohammed Shakeers Antwort akzeptieren und eine weitere Frage stellen, diese Frage nicht aktualisieren, wenn Sie andere Probleme haben – FredericP

Verwandte Themen