时间:2015-10-02 16:13:23

标签: ios uiscrollview uiimageview accessibility uiaccessibility

我在UIScrollView中包含了一组UIImageViews。出于某种原因,当我开始使用Voice Over读取页面上的所有元素时,它不会像应该的那样读取ImageView。我设置了UIImageView的可访问性信息,如下所示:

if (self.featuresModel.imageText) {
    self.featureImage.isAccessibilityElement = YES;
    self.featureImage.accessibilityLabel = self.featuresModel.imageText;
}

我已经检查过UIScrollView没有被设置为可访问,因此它不会拦截触摸。它似乎表明它将在模拟器中工作,当我点击图像时,它弹出正确的标签并突出显示正确的区域,但是,在物理设备上,单击或尝试读取页面上的所有元素时什么都不做进入UIImageView。

有关如何解决此问题的任何想法?

编辑:scrollView类是UIScrollView的自定义子类,它没有直接实现UIAccessiblity协议,但是,因为它使用UIScrollView作为其底层数据结构,所以我不认为这应该重要,但是,因为我仍然不太了解UIAccessibility我认为我应该提到它。

1 个答案:

答案 0 :(得分:2)

确保在storyboard / nib上启用了imageview的辅助功能。

如果将isAccessibilityElement设置为YES,则语音突出显示并读取它。同样,该元素的可访问性应该在nib中加入。

如果您将isAccessibilityElement设置为NO,则语音不会突出显示它并且不会读取它,即使该元素的可访问性在nib中也是可用的。

注意:Voice over并不关心scrollview。它只关心滚动视图中的元素。如果需要,可以更改辅助功能元素的顺序。或者,您可以在滚动视图中禁用元素的辅助功能。