2016-04-20 6 views
1

Ich versuche, ein musikalisches Tastatur-UI-Element zugänglich zu machen. So wie GarageBand es macht. Mit anderen Worten: VoiceOver wird beim ersten Berühren von einer Tastatur berührt, und ab diesem Punkt werden bei jedem Tippen auf die Keyboard-Ansicht Noten gespielt, und es gibt keine weiteren VoiceOver-Unterbrechungen, bis der Benutzer außerhalb des musikalischen Keyboard-Rahmens berührt.Hinzufügen von Eingabehilfen zum Piano-Style-UI-Element

habe ich eine UICollectionView, wobei jede Zelle einen musikalischen Schlüssel darstellt, und wenn der Benutzer auf sie tippt werden die Noten wie erwartet gespielt. Wie auch immer, ich habe Probleme, das zu tun, wie das GB es tut. Für das Objekt UICollectionView habe ich accessibilityLabel eingestellt und accessibilityTraits auf UIAccessibilityTraitAllowsDirectInteraction gesetzt. Aber das scheint nicht zu funktionieren. Wenn VoiceOver aktiviert ist, werden keine Noten abgespielt. Beim ersten Antippen gibt VoiceOver an, was für accessibilityLabel eingestellt ist und piept bei jedem Tippen.

Ich habe benutzerdefinierte UIGestureRecogniser Unterklasse, die ich für die Sammlung Sichtzelle tap Erkennung verwenden. Muss ich unter diesen Umständen etwas Besonderes tun?

Irgendwelche Ideen? Muss ich etwas anderes machen?

Antwort

0

Ich habe es herausgefunden. Nicht sicher, was die Argumentation jedoch ist.

Embeded die musikalische Tastatur UICollectionView in einer anderen Ansicht und machte diese Ansicht zugänglich mit der UIAccessibilityTraitAllowsDirectInteraction Eigenschaft. Jetzt funktioniert es wie erwartet.