我正在开发一个视图,其中某些元素将被删除并重新添加为可访问的项目,具体取决于视图的状态。通过设置AccessibilityElementsHidden
来切换状态,我已经能够成功实现我想要的功能。
但是,我发现在更新辅助功能布局之前,此字段之间存在短暂暂停(约1-2秒),这可以允许用户突出显示已停用的辅助功能元素(如果他们正在移动合理的节奏。如果他们专注于某个项目,因为它被禁用,这使得很难在VoiceOver界面中重新定位自己。
我找到了立即更新界面显示的方法(通过主线程上的SetNeedsLayout()
和LayoutIfNeeded()
),但不幸的是,这不会触发辅助功能布局更新。
我也尝试过使用UIAccessibilityPostNotification.LayoutChanged
但是就像更改AccessibilityElementsHidden
属性一样,这也需要一点时间传播到视图。
任何人都可以提供一些见解,了解我需要做些什么才能确保用户在应用Accessible Layout之前无法将自己置于糟糕的状态?