Wie lege ich das label für ein bestimmtes segment eines UISegmentedControl?
Verwenden wir KIF für unsere funktionellen Tests, und verwendet es das label des elements zu bestimmen, wo das senden von Ereignissen. Ich bin gerade dabei zu testen, die das Verhalten eines UISegmentedControl, aber um das zu tun, so dass ich benötigen, um unterschiedliche Zugänglichkeit zu den Bezeichnungen für die verschiedenen Segmente der Kontrolle. Wie lege ich das label für ein bestimmtes segment?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich fange gerade mit KIF mich, so dass ich noch nicht getestet, aber es kann einen Versuch Wert sein. Ich bin sicher, ich habe das gleiche Problem bald, so dass ich wäre daran interessiert zu hören, ob es funktioniert.
Erste, UIAccessibility Protocol Reference eine note unter accessibilityLabel, der sagt:
So, ich Frage mich, ob Sie könnte die accessibilityLabel auf jeden NSString-Objekt als gut und in der Lage sein zu verwenden, um Zugriff auf jedem segment mit KIF. Als erstes könnten Sie versuchen, die Schaffung von ein paar Streichern, Einstellung Ihrer Zugänglichkeit Etiketten, und mit [[UISegmentedControl alloc] initWithItems:myStringArray]; um Sie aufzufüllen.
Bitte aktualisieren Sie uns über Ihre Fortschritte. Ich würde gerne wissen, wie das geht
accessibilityLabel
und verwenden Sie dann das Bild in einemUISegmentedControl
, funktioniert es wie erwartet.NSString
Objekte... mind = blownAls Vertex sagte,
obj-c
swift
einige Ratschläge, damit Sie nicht verrückt werden, wie ich es Tat:
accessibilityLabel
auf dieUISegment
und rechts nach der Abtretung ermächtigt, es istnil
wiederaccessibilityIdentifier
auf den index der Titel, scheiterte aber: "Keine Treffer gefunden für die Suche: Elemente passende Prädikat '"0" IDS "aus-Eingang". Dann setze ichaccessibilityLabel
, und es funktioniert.Jedes segment der
UISegmentedControl
istUISegment
Instanz der Klasse, die Unterklasse vonUIImageView
. Sie können Zugriff auf diese Instanzen vonsubviews
Eigenschaft vonUISegmentedControl
und versuchen, hinzufügen von Eingabehilfen für Sie programmgesteuert.Dies ist eine alte Frage, die aber nur für den Fall, jemand läuft gegen diesen, fand ich, dass die Segmente automatisch hatte ein label ist angegeben, wie Ihren text. Wenn also zwei Optionen wurden Hinzugefügt, die von Option 1 und Option 2. Ein Aufruf
erfolgreich ausgewählte segment.
Können Sie sich nicht darauf verlassen, dass der index in der subviewsarray für die position. Für die individuelle Anpassung der einzelnen subviews habe ich sozusagen die Untersichten auf Ihrer X-Position, bevor Sie alle Anwesen.Was wäre auch gültig für accesibilityLbel.
Weiter zum Stuart 's Antwort, ich fand es wirklich nützlich beim schreiben von Testfällen zu drehen auf" Eingabehilfen-Inspektor "auf dem Simulator (Einstellungen -> allgemein -> Eingabehilfen -> Eingabehilfen-Inspektor"). Sie werden überrascht sein, wie viele Elemente bereits Zugänglichkeit labels enthalten, wie in der standard-iOS UI-Elemente oder sogar third-party-frameworks.
Hinweis: Gesten wird nun anders sein - Tippen Sie auf anzeigen Informationen zur Barrierefreiheit, doppelt Tippen, um Sie auszuwählen. Minimierung der Eingabehilfen-Inspektor-Fenster (durch Antippen der X-Taste) zurück, die gesten wieder normal.
weitere option, wenn Sie nicht bereit, setzen Zugänglichkeit label könnte die Berechnung der Stellungnahme aufzufordern jedes segment Teil und nutzen
auslösen der Aktionen
Wenn man sich die segmentierten Kontrolle durch die accessibility inspector, Sie finden, dass die Segmente UISegment Objekte. Außerdem entpuppen Sie sich als direkte subviews des UISegmentedControl. Diese Tatsache legt nahe, die folgenden wahnsinnig verrückt, aber perfekt sicher Swift 4-code, um die Zugänglichkeit labels der Segmente eines UISegmentedControl:
Euch Jungs wollen, um zu sehen, wie Apple empfiehlt, dass es getan werden?
Es ist FUGLY.
Dies ist aus dieses Beispiel:
Gelten die Barrierefreiheit, Beschriftungen zu Bildern, und befestigen Sie dann die Bilder. Nicht allzu Verschieden von der obige Antwort.
Wie Vortex schon sagte, das array wird von rechts nach Links, mit [0] beginnend auf der rechten Seite. Sie können jeden einzelnen Eingabehilfen-option, die durch den Zugriff auf die Untersichten. Da die Untersichten sind optional, es ist gut, um zu ziehen aus der Untersicht zuerst, und dann ordnen Sie die accessibility-Eigenschaften, die Sie wollen. Swift 4 Beispiel für eine einfache zwei-option segment-Steuerung: