我想要显示一个UICollectionView
,但我可能会在UIView
上方放置一个稍微半透明的背景。当发生这种情况时,我需要阻止用户与集合视图进行交互 - 它们应该只能与超出它的视图进行交互。为此,我已经使视图填充了集合视图的界限,并且运行良好。但是我注意到当VoiceOver的用户使用该应用程序时,如果他们点击视图它会聚焦它,但是如果他们向右滑动以转到下一个元素,它将把第一个单元格聚焦在集合视图中并允许与它进行交互。如何完全阻止所有用户与集合视图进行交互?
我已尝试为scrollingEnabled
设置false
至userInteractionEnabled
以及false
至collectionView
但未执行此操作特技。我仍然可以访问每个单元格中的标签,因此可以访问整个集合视图。
答案 0 :(得分:1)
看起来accessibilityElementsHidden
是您想要的属性;应该能够在UICollectionView上将其设置为YES以隐藏该子树。来自docs:
您可以使用此属性隐藏新视图到达所涵盖的视图。在这种情况下,隐藏的视图可能仍然在屏幕上可见,但它们不是用户操作的焦点。
......这听起来很适合你的情况。
答案 1 :(得分:0)
如果用户真的应该只能与其上面的视图进行交互而没有其他视图(包括集合视图),请考虑在顶部的视图上设置accessibilityViewIsModal
。
为了更好地了解accessibilityViewIsModal
在实践中的作用,请考虑在DavidRönnqvist的Adding accessible behavior中,在“实现可访问的模态视图”一节中看到优秀的交互式图1。