0

Die Containeransicht auf oberster Ebene ist eine benutzerdefinierte UICollectionView. Ich habe zwei benutzerdefinierte Containeransichten zum Aufladungsort hinzugefügt. Der Hierarchiebaum ist wie untenBenutzerdefinierte Subcontainer-Ansichten in UICollectionView werden in iOS nicht angezeigt UIAutomation logElementTree oder Xcode UI Testen der Debugbeschreibung

individuelle UICollectionView

| - benutzerdefinierte UIView Container => 1 Image

| - benutzerdefinierte UIView Container => 8 Tasten

| - custom UICollectionCells

Voice Over konnte mit diesen Tasten richtig reagieren.

Wenn ich jedoch versuchte, UIAutomation mit target.logElementTree() zu verwenden, findet der Elementbaum nur die UICollectioncell-Liste unter der Cutom UICollectionView. Er kann den benutzerdefinierten Subview-Container und ihre untergeordneten Elemente nicht finden.

Dann habe ich Xcode UI Testing versucht, mit app.debugDescription. Das Ergebnis enthält nur UICollectionCells in der benutzerdefinierten UICollectionView ohne Schaltflächen.

Wie kann ich sie in der UIAutomation-Elementstruktur erscheinen lassen?

Antwort

0

schließlich von Aspects mit der kundenspezifische Sammlung Kategorie verwenden:

In kundenspezifische Sammlung Kategorie, außer Kraft setzen +(void)load:

  • Aspekt Block hinzufügen, die stong Eigenschaft a, init der all accessibilityElements nach der Ausführung der Speicherung initWithFrame:collectionViewLayout: oder initWithCoder:
  • Hinzufügen von Aspektblock zum Hinzufügen von Unteransicht zur Eigenschaft a nach der Ausführung addSubview:

schließlich implementieren UIAccessibilityContainer Protokoll Methoden, um die Eigenschaft mit a

schwierige Teil: Verwendung objc_setAssociatedObject und objc_getAssociatedObject zu handhaben a