可访问性标识符是开发人员为GUI对象生成的ID,可用于自动化测试.
A UIBarButtonItem没有实现UIAccessibilityIdentification.但是有可能我可以分配一个辅助功能标识符吗?
我试图在具有固定板的益智游戏中添加对Voice Over accessibility的支持.但是,我很难UIAccessibilityElements出现.
现在我重写accessibilityElementAtIndex,accessibilityElementCount并indexOfAccessibilityElement在我的SKScene.
他们返回一组可访问的元素:
func loadAccessibleElements()
{
self.isAccessibilityElement = false
let pieces = getAllPieces()
accessibleElements.removeAll(keepCapacity: false)
for piece in pieces
{
let element = UIAccessibilityElement(accessibilityContainer: self.usableView!)
element.accessibilityFrame = piece.getAccessibilityFrame()
element.accessibilityLabel = piece.getText()
element.accessibilityTraits = UIAccessibilityTraitButton
accessibleElements.append(element)
}
}
Run Code Online (Sandbox Code Playgroud)
其中piece是子类,SKSpriteNode并getAccessibilityFrame定义为:
func getAccessibilityFrame() -> CGRect
{
return parentView!.convertRect(frame, toView: nil)
}
Run Code Online (Sandbox Code Playgroud)
现在,一个(尺寸错误的)accessibility元素似乎出现在错误的地方.
有人能指出我正确的方向吗?
非常感谢
编辑:
我已经尝试了一个hack-ish工作,将UIView放在SKView上,UIButton元素放在与SKSpriteNodes相同的位置.但是,可访问性仍然不希望工作.视图按如下方式加载:
func loadAccessibilityView()
{
view.isAccessibilityElement = false
view.accessibilityElementsHidden = false
skView.accessibilityElementsHidden = …Run Code Online (Sandbox Code Playgroud)