小编Mas*_*son的帖子

使用Sprite Kit的辅助功能(配音)

我试图在具有固定板的益智游戏中添加对Voice Over accessibility的支持.但是,我很难UIAccessibilityElements出现.

现在我重写accessibilityElementAtIndex,accessibilityElementCountindexOfAccessibilityElement在我的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是子类,SKSpriteNodegetAccessibilityFrame定义为:

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)

uiaccessibility sprite-kit skspritenode swift

5
推荐指数
1
解决办法
1850
查看次数

标签 统计

skspritenode ×1

sprite-kit ×1

swift ×1

uiaccessibility ×1