iOS更改可访问性焦点.

Joh*_*n S 28 iphone accessibility ios4 ios

有没有办法以编程方式设置辅助功能焦点(App Store安全)?任何帮助将不胜感激.

Vla*_*lad 41

要专注于你可以打电话的元素.

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,  self.myFirstElement);
Run Code Online (Sandbox Code Playgroud)

否则,对于iOS 8+,使用accessibilityElements设置元素顺序,它将自动关注列表中的第一个元素

self.accessibilityElements = @[myFirstView, mySecondButton, myThirdLabel]
Run Code Online (Sandbox Code Playgroud)

  • 如果屏幕没有改变但是某些视图在当前屏幕中出现/消失,还有"UIAccessibilityLayoutChangedNotification" (8认同)

小智 6

extension UIAccessibility {
    static func setFocusTo(_ object: Any?) {
        if UIAccessibility.isVoiceOverRunning {
            DispatchQueue.main.asyncAfter(deadline: .now() + 0.8) {
                UIAccessibility.post(notification: .layoutChanged, argument: object)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

添加此扩展并通过传入您想要关注的视图来调用它。如果您想在使用标签栏导航时更改焦点,您可以从 viewWillAppear 调用它。如果没有 0.7 或更多的延迟,此代码将无法在任何 init 方法中工作。