bar*_*ett 5 ios voiceover uiaccessibility swift
当您将 UISegmentedControl 添加到视图时,UIAccessibility将关注它并说:
"(Selected) ItemName Button 1 of 2"
"ItemName Button 2 of 2"
Run Code Online (Sandbox Code Playgroud)
我有一个自定义控件,UIButtons其切换类似于UISegmentedControl. 但我想弄清楚的是如何让画外音n of n在最后宣布。
.accessibilityTraits = .tabBar我发现的最接近的事情是在容器上分配。问题是它宣布:
"(Selected) ItemName Button 1 of 2"
"ItemName Button 2 of 2"
Run Code Online (Sandbox Code Playgroud)
但为了符合我们的可访问性指南,我们不能让它宣布“选项卡”。
https://developer.apple.com/documentation/uikit/uiaccessibility/uiaccessibilitytraits/1648592-tabbar
除了编写自定义之外,accessibilityLabelUIAccessibility 中是否有任何内容可以处理此逻辑?
我有一个自定义控件,其 UIButtons 的切换类似于 UISegmentedControl。但我想弄清楚的是如何让 Voice Over 在最后宣布 n of n 。
UIButton元素放入accessibilityElements自定义控件的数组中,该控件的作用类似于容器。UIButton,accessibilityLabel通过插入先前研究的结果来设置。
下面是一种逻辑,可以帮助您通过一些代码实现您的目的,例如(Xcode 10.2.1、Swift 5.0、iOS 12):
class ButtonsViewController: UIViewController {
@IBOutlet weak var myCustomContainer: UIView!
@IBOutlet weak var btn1: UIButton!
@IBOutlet weak var btn2: UIButton!
@IBOutlet weak var btn3: UIButton!
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
myCustomContainer.accessibilityElements = [btn1!, btn2!, btn3!]
let nbButtons = myCustomContainer.accessibilityElements?.count
for (index, elt) in (myCustomContainer.accessibilityElements?.enumerated())! {
let btn = elt as! UIButton
let btnName = btn.titleLabel?.text
btn.accessibilityLabel = btnName! + String(index + 1) + " of " + String(describing: nbButtons!)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |