2014-12-12 2 views
0

Простой вопрос: если я установил accessibilityElementsHidden на UIViewController, будет ли он автоматически скрывать все во всех его представлениях, а также их представлениях и т. Д.?Поддерживает ли настройка accessibilityElementsHidden рекурсивно?

Я поворачиваю accessibilityElementsHidden на некоторые виды, и они все еще появляются в моих элементах VoiceOver, когда я прокручиваю. Я убедился, что после публикации сообщения LayoutChanged я выполнил все три метода неофициального протокола UIAccessibilityContainer и подтвердил, что мое свойство accessibilityElements НЕ содержит эти представления. Тем не менее, они по-прежнему отображаться как я перелистывать :(

+0

, если я понимаю документации в Apple, как [UIAccessibilityElement] (https://developer.apple.com/library/ios/documentation/UIKit/Reference /UIAccessibilityElement_Class/index.html#// apple_ref/occ/instm/UIAccessibilityElement/initWithAccessibilityContainer :) right, 'UIAccessibilityElements' не могут быть представлениями, потому что' UIView 'доступны по умолчанию (« _В общем случае вы не создаете элементы доступности для элементов вашего приложения, поскольку стандартные элементы управления UIKit и представления доступны по умолчанию ._ ") – anneblue

+0

@anneblue' UIAccessibilityElement' является общей реализацией протокола 'UIAccessibility'. 'UIView' также реализует протокол (фактически, он объявлен в' NSObject'). Любой объект, реализующий протокол, называется «элементом доступности». – Justin

+0

Как я понимаю; accessibilityElementsHidden влияет только на * subviews * данного вида; и я подозреваю, что он вообще не работает на UIViewController - только фактические представления в текущем дереве просмотра этого контроллера. Пробовали ли вы настройку isAccessibilityElement = NO для просмотров, которые вы пытаетесь скрыть? - это обычный способ скрыть конкретные UIViews. Любопытно, почему вы внедряете UIAccessibilityContainer - делаете ли вы это, чтобы выставлять пользовательские элементы пользовательского интерфейса без просмотра, или это часть попытки скрыть эти другие представления? – BrendanMcK

ответ

1

Я превращаюсь accessibilityElementsHidden на для некоторых взглядов, и они все еще показывает вверх [...]

Убедитесь, что accessibilityElementsHidden является установлено в YES на родителя из элементов, которые вы хотели бы скрыть.

+0

Yup, я включаю его как в контроллер представления, так и в свой .view. Нет радости :( – Luke

+0

Можете ли вы поделиться иерархиями представлений и доступности? – Justin

+0

Обратите внимание, что установка этого свойства в true для родителя приведет к скрытию * all * подъявлений этого родителя, что может оказаться неприемлемым, если вы хотите скрыть только один из нескольких братья и сестры. – BrendanMcK