tas*_*ari 5 accessibility objective-c cocos2d-iphone ios uiaccessibility
我正在试图使用openGL视图,特别是cocos2d框架.
从Apple Accessibility指南,我按照此部分操作:使自定义容器视图的内容可访问
我已经将用于实现非正式UIAccessibilityContainer协议的视图(CCGLView for cocos2d people)(它是一个UIView)子类化.
我的子类UIView中的UIAccessibilityContainer实现:
-(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];
}
Run Code Online (Sandbox Code Playgroud)
这个代码被调用并-(NSArray *)acessibilityElements返回一个UIAccessibilityElements数组.但是,当我触摸屏幕时,没有显示语音控件.关于我遗失或做错的任何想法?
其他信息:
我正在使用故事板并将CCGLView添加到故事板中的UIView._director.view是我子类化的CCGLView.
// 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];
Run Code Online (Sandbox Code Playgroud)
有一段时间我怀疑,因为我添加了子视图,这导致它不显示,但我也尝试在故事板中以同样的方式继承UIView,但它也无法正常工作.
这也是我在数组中创建每个UIAccessibilityElement的方法.
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;
Run Code Online (Sandbox Code Playgroud)
找到一个现在正在运行的解决方案,以防有人遇到此问题. -(id)accessibilityElementAtIndex:(NSInteger)index正在返回一个正确UIAccessibilityElement但看起来它没有被任何Accessibility API使用它保留.我创建了一个强大的NSArray属性来保存UIAccessibilityElements,现在它工作正常.
| 归档时间: |
|
| 查看次数: |
3354 次 |
| 最近记录: |