VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别
Posted 阿曌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别相关的知识,希望对你有一定的参考价值。
在NSObject
的扩展NSObject(UIAccessibility)
中,有两个属性
@property(nonatomic) BOOL isAccessibilityElement
@property(nonatomic) BOOL accessibilityElementsHidden
这两个都可以使“VO元素”不支持“VO”。(VO:VoiceOver简称,VO元素:支持VocieOver的元素,在代码中被写为accessibilityElement
)
可以设置
view.isAccessibilityElement = NO;
或者
view.accessibilityElementsHidden = YES;
这两个的元素区别是:isAccessibilityElement
是针对当前“VO元素”的,而accessibilityElementsHidden
是针对当前“VO元素”以及其所包含的所有“VO元素”的。
举个isAccessibilityElement
的例子。
一个Button
里面有个Label
,如果这时候设置button.isAccessibilityElement = NO;
(UIButton的isAccessibilityElement默认为YES
),使用VoiceOver时会发现还是可以使用,只不过选中区域由原来的Button
区域缩小为Label
区域了。
反之,如果只把Label
的isAccessibilityElement
设为NO
,和没设效果是一样的——选中为Button
区域。
再举个accessibilityElementsHidden
的例子
如果我们需要把一个ViewController
的根View
以及内部所有子View
都不支持VoiceOver,只需要在ViewController
中这样写就可以了。
self.view.accessibilityElementsHidden = YES;
所有的“VO元素”就都隐藏“VO”功能了。
分别看下官方文档的解释。
以上是关于VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别的主要内容,如果未能解决你的问题,请参考以下文章
VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别