有没有一种方法来设置无障碍焦点编程(应用商店安全)?任何帮助将不胜感激。
bkhjykvo1#
extension UIAccessibility { static func setFocusTo(_ object: Any?) { if UIAccessibility.isVoiceOverRunning { DispatchQueue.main.asyncAfter(deadline: .now() + 0.8) { UIAccessibility.post(notification: .layoutChanged, argument: object) } } } }
添加这个扩展并通过传入你想要聚焦的视图来调用它。如果你想在使用标签栏导航时改变焦点,你可以从viewWillAppear调用它。如果没有0.7或更大的延迟,这段代码在任何init方法中都不能工作。
mwkjh3gx2#
这是Swift代码:
UIAccessibility.post(notification: .screenChanged, argument: <theView>)
使用示例
let titleLabel = UILabel() override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) UIAccessibility.post(notification: .screenChanged, argument: titleLabel) }
pdkcd3nj3#
UIAccessibility.post(notification: .layoutChanged, argument: toast) toast.becomeFirstResponder() toast.isAccessibilityElement = true toast.accessibilityTraits = .staticText //Traits option ie .header, .button etc toast.accessibilityLabel = "Accessibility label to be read by VoiceOver goes here"
地址:
toast
View
accessibilityLabel
t1qtbnec4#
以关注您可以调用的元素。斯威夫特:
UIAccessibility.post(notification: .screenChanged, argument: self.myFirstView)
目标C:
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, self.myFirstView);
否则,对于iOS 8+,请使用accessibilityElements设置元素顺序,它将自动关注列表中的第一个元素
self.accessibilityElements = @[myFirstView, mySecondButton, myThirdLabel]
4条答案
按热度按时间bkhjykvo1#
添加这个扩展并通过传入你想要聚焦的视图来调用它。如果你想在使用标签栏导航时改变焦点,你可以从viewWillAppear调用它。如果没有0.7或更大的延迟,这段代码在任何init方法中都不能工作。
mwkjh3gx2#
这是Swift代码:
使用示例
pdkcd3nj3#
地址:
toast
是我的UIView(在特定场景下触发的弹出窗口)View
toast
),并且旁白将读取accessibilityLabel
t1qtbnec4#
以关注您可以调用的元素。
斯威夫特:
目标C:
否则,对于iOS 8+,请使用accessibilityElements设置元素顺序,它将自动关注列表中的第一个元素