完全阻止与UICollectionView的交互

时间:2014-12-29 03:07:45

标签: ios uicollectionview accessibility voiceover

我想要显示一个UICollectionView,但我可能会在UIView上方放置一个稍微半透明的背景。当发生这种情况时,我需要阻止用户与集合视图进行交互 - 它们应该只能与超出它的视图进行交互。为此,我已经使视图填充了集合视图的界限,并且运行良好。但是我注意到当VoiceOver的用户使用该应用程序时,如果他们点击视图它会聚焦它,但是如果他们向右滑动以转到下一个元素,它将把第一个单元格聚焦在集合视图中并允许与它进行交互。如何完全阻止所有用户与集合视图进行交互?

我已尝试为scrollingEnabled设置falseuserInteractionEnabled以及falsecollectionView但未执行此操作特技。我仍然可以访问每个单元格中的标签,因此可以访问整个集合视图。

2 个答案:

答案 0 :(得分:1)

看起来accessibilityElementsHidden是您想要的属性;应该能够在UICollectionView上将其设置为YES以隐藏该子树。来自docs:

  

您可以使用此属性隐藏新视图到达所涵盖的视图。在这种情况下,隐藏的视图可能仍然在屏幕上可见,但它们不是用户操作的焦点。

......这听起来很适合你的情况。

答案 1 :(得分:0)

如果用户真的应该只能与其上面的视图进行交互而没有其他视图(包括集合视图),请考虑在顶部的视图上设置accessibilityViewIsModal

为了更好地了解accessibilityViewIsModal在实践中的作用,请考虑在DavidRönnqvist的Adding accessible behavior中,在“实现可访问的模态视图”一节中看到优秀的交互式图1。