Ja, gibt es!
bedenken, dass wir eine segmentierte Steuer enthält 3 Segmente haben:
Eigentlich ist es eine Ansicht ist, die 3 subviews
enthält als UISegment
typisiert. Wenn wir versuchen, diese segmentierten Steuer subviews (Unter der Annahme, dass wir es auf den gewünschten View-Controller als segmentedControl
IBOutlet verbunden) zu drucken:
UISegment:
class ViewController: UIViewController {
// MARK:- IBOutlets
@IBOutlet weak var segmentedControl: UISegmentedControl!
override func viewDidLoad() {
super.viewDidLoad()
for view in segmentedControl.subviews {
print(view)
}
}
}
Das Protokoll etwas ähnliches angezeigt werden soll 0x7febebc06980; Rahmen = (229 0; 114 29); Schicht = CALayer: 0x60000002edc0 UISegment: 0x7febebe140c0; Rahmen = (114 0; 114 29); Schicht = CALayer: 0x618000231800 UISegment: 0x7febebe14d30; Rahmen = (0 0; 113 29); Schicht = CALayer: 0x6180002319c0
So können Sie die Segmente in dem segmentierten Steuer als UISegment
zugreifen, so benötigt bearbeiten, um es als UIView gelten. Zum Beispiel, wenn Sie das zweite Segment drehen möchten, können Sie implementieren:
override func viewDidLoad() {
super.viewDidLoad()
for view in segmentedControl.subviews[1].subviews {
print(view)
view.transform = CGAffineTransform(scaleX: -1, y: 1)
}
}
Wie Sie sehen können, auch das Segment Subviews:
UISegmentLabel: 0x7f8b51701770; Rahmen = (0 0; 64 22.5); text = 'Sekunde'; undurchsichtig = NEIN; userInteractionEnabled = NEIN; Schicht = _UILabelLayer: 0x610000091530
UIImageView: 0x7f8b51701470; Rahmen = (114 0; 1 1); Alpha = 0; undurchsichtig = NEIN; Autoresize = LM; userInteractionEnabled = NEIN; Markierung = -1030; Schicht = CALayer: 0x610000031480
Also, sollten Sie alle diese Subviews drehen, wie über dem Code-Schnipsel implementiert in.
würde der Ausgang sein:
Der gleiche Ansatz mit segmentierten Kontrollen anwendbar sein sollte, die Bilder statt Titel haben:
Vor dem Drehen:
Nach dem Drehen:
Dank @Pochi. Wenn jedoch die gesamte UIView gespiegelt wird, werden auch einige andere Eigenschaften wie diese gerundeten Rahmen umgedreht. Ich habe die Frage jetzt editieren - bitten, den Inhalt von UIView und nicht den UIView selbst zu spiegeln. P.S .: UIView enthält kein UILabel. Es enthält eine Sache namens UISegmentLabel. – Dorad