繁体   English   中英

VoiceOver是否无法滚动到横向屏幕外的元素?

[英]VoiceOver not scrolling to elements offscreen in landscape?

如何使VoiceOver滚动到UIScrollView中的屏幕外元素。

我有一个UIScrollView。 在其中是一个UIView,其中包含许多子视图。 在这些子视图中是标签-如下所示:

Scroll View
-> UIView
--> UIView
----> Label
--> UIView
----> Label
--> UIView
----> Label
--> UIView
----> Label
--> UIView
----> Label

在横向启动我的应用程序时,我可以看到某些元素不在屏幕上。 我可以滚动到这些没有问题。 但是,当使用VoiceOver时,我可以滑动以在屏幕上的各个元素之间移动,但应用程序不会通过单独滑动而滚动到屏幕上最后一个可见的元素。 如果将iPad旋转到纵向模式,则可以滑动到无法访问的元素,然后继续滑动至纵向模式下不在屏幕上的其他元素。 我可以使用三指滑动来向下移动到下一个“页面”,然后选择一个要继续的元素,但这并不是我所期望的。 我曾期望继续滑动,下一个元素会滚动到视图中。

该应用程序是使用Xcode 6.4在Swift 1.2中编写的,而我正在运行iOS 8.4的iPad Mini 2上运行该应用程序

有任何想法吗?

您有责任滚动以响应焦点更改。 使用UIAccessibilityFocus协议来监视当前焦点,并在焦点对准屏幕外元素时以编程方式滚动视图。

accessibilityElements

容器中的辅助功能元素数组。 您可以实现此属性而不是动态方法,以支持对所包含元素的检索。 此属性的默认值为nil

您可以通过以下方式重新分配可访问性视图的accessibilityElements的值:

self.containerView.accessibilityElements = [self.label1,
                                            self.label2,
                                            self.label3,
                                            self.label4,
                                            self.label1]


self.scrollView.accessibilityElements = [self.containerView]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM