VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别

本文介绍了iOS VoiceOver中isAccessibilityElement和accessibilityElementsHidden两个属性的区别。isAccessibilityElement用于控制单个元素是否支持VoiceOver,而accessibilityElementsHidden则会影响元素及其所有子元素的VoiceOver支持情况。通过设置isAccessibilityElement,可以单独屏蔽某个元素的VoiceOver行为;而设置accessibilityElementsHidden为true,则会隐藏整个视图及其子视图的VoiceOver功能。文章通过实例说明了两者的不同效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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区域了。

反之,如果只把LabelisAccessibilityElement设为NO,和没设效果是一样的——选中为Button区域。

再举个accessibilityElementsHidden的例子

如果我们需要把一个ViewController根View以及内部所有子View都不支持VoiceOver,只需要在ViewController中这样写就可以了。

    self.view.accessibilityElementsHidden = YES;

所有的“VO元素”就都隐藏“VO”功能了。


分别看下官方文档的解释。

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值