Sto cercando di ottenere il voice over lavorando con una vista openGL, in particolare dal framework cocos2d.UIView personalizzata non visualizza accessibilità su Voice over
Dalla guida di Apple Accessibilità ho seguito questa sezione: Make the Contents of Custom Container Views Accessible
ho sottoclasse la vista (CCGLView per le persone Cocos2d), che è un UIView, per implementare il protocollo informale UIAccessibilityContainer.
implementazione UIAccessibilityContainer nel mio UIView sottoclasse:
-(NSArray *)accessibilityElements{
return [self.delegate accessibleElements];
}
-(BOOL)isAccessibilityElement{
return NO;
}
-(NSInteger)accessibilityElementCount{
return [self accessibilityElements].count;
}
-(NSInteger)indexOfAccessibilityElement:(id)element{
return [[self accessibilityElements] indexOfObject:element];
}
-(id)accessibilityElementAtIndex:(NSInteger)index{
return [[self accessibilityElements] objectAtIndex:index];
}
Questo codice è sempre chiamato e -(NSArray *)acessibilityElements
restituisce un array di UIAccessibilityElements. Tuttavia i controlli vocali non vengono visualizzati quando tocco lo schermo. Qualche idea su cosa mi sfugge o che mi sbaglio?
Altre informazioni:
sto usando uno storyboard e aggiungere il CCGLView al UIView nello storyboard. _director.view è il CCGLView che ho sottoclasse.
// Add the director as a child view controller.
[self addChildViewController:_director];
// Add the director's OpenGL view, and send it to the back of the view hierarchy so we can place UIKit elements on top of it.
[self.view addSubview:_director.view];
[self.view sendSubviewToBack:_director.view];
Per un po 'sospetto che perché ho aggiunto la visualizzazione secondaria che stava causando non venga visualizzata, ma anche provato sottoclasse UIView nello storyboard allo stesso modo, ma era anche non funzionava.
Anche questo è come sto creando ogni UIAccessibilityElement nella matrice.
UIAccessibilityElement *elm = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:view];
elm.accessibilityFrame = f;
elm.accessibilityLabel = t.letter;
elm.isAccessibilityElement = YES;
elm.accessibilityHint = @"Button";
elm.accessibilityValue = t.letter;
elm.accessibilityTraits = UIAccessibilityTraitButton;
Questo mi sta facendo impazzire per un paio d'ore - grazie! –