2016-04-21 6 views
0

ich eine UICollection Ansicht haben, die eine Kopfansicht hat wie folgt zurückgegeben:iOS: Zugänglichkeit: UICollectionView: UICollectionElementKindSectionHeader auslesen, nachdem die Zellen

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView 
      viewForSupplementaryElementOfKind:(NSString *)kind 
           atIndexPath:(NSIndexPath *)indexPath { 
    MyView *myView = [collectionView dequeueReusableSupplementaryViewOfKind:kind 
     withReuseIdentifier:@"someIdentifier" 
     forIndexPath:indexPath]; 

    // Set various parameters on the view. 
    return myView; 
} 

Dann habe ich eine Reihe von Zellen aus cellForItemAtIndexPath offenbar zurückgekehrt.

Im Accessibility-Modus, wenn ich 2 Finger nach oben wischen, liest es die Header-Ansicht LAST, nicht zuerst. Ich muss es zuerst lesen. Ich habe mir den accessibilityPoint und den accessibilityFrame angeschaut, und beide sind korrekt. Der fokussierte Erreichbarkeitsrahmen des Headers liegt eindeutig über den Zellen.

Warum also sollte die Kopfzeile zuletzt im Accessibility-Modus gelesen werden?

Beispiel: enter image description here

+0

Ändern Sie die Reihenfolge der Eingabehilfen. –

Antwort

0

So scheint dies wie ein iOS Fehler zu mir, weil offensichtlich soll der Kopf zuerst von Voiceover gelesen werden, bevor die Zellen gelesen werden.

Ich habe dieses Problem umgehen, indem Abschnitt 0 nur den Header und 0 Zeilen zurückgeben. Dann den nächsten Abschnitt (1) zurückgeben NO-Header und nur Zeilen. Jetzt liest VoiceOver alles in der richtigen Reihenfolge. Für den Benutzer sieht es genauso aus, weil sie nicht erkennen können, dass die Kopfzeile für einen leeren Abschnitt ohne Zeilen steht.

0

Die Lösung besteht darin, die Eigenschaft sentGroupAccessibilityChildren der Auflistungsansicht auf true zu setzen.

z.

self.collectionView.shouldGroupAccessibilityChildren = true 
Verwandte Themen