Заголовки разделов UICollectionView как заголовки специальных возможностей

У меня есть два вопроса относительно специальных возможностей и UICollectionViews, с которыми я надеюсь получить помощь экспертов. Другой вопрос, касающийся порядка чтения Voice Over: здесь. Я создал образец проекта, демонстрирующий обе проблемы.

У меня есть UICollectionView, где я предоставляю настраиваемые заголовки разделов. Эти заголовки разделов являются элементами доступности и имеют свойство доступности UIAccessibilityTraitHeader. Когда Voice Over включен и пользователь проводит по коллекции горизонтально, заголовок объявляется правильно, и он даже объявляется как заголовок. Однако, если пользователь проведет пальцем вверх или вниз к следующему заголовку, Voice Over перейдет к другому заголовку, только если он виден. Я предполагаю, что это связано с тем, что, когда представление не отображается в представлении коллекции, оно удаляется из иерархии представлений, и Voice Over больше не знает о его существовании.

Вы можете загрузить этот примерный проект, запустить его, включить голосовую связь и использовать диск для установки проведите пальцем вверх / вниз к заголовкам, чтобы просмотреть проблему.

Есть ли способ разрешить пользователю переходить к заголовку, который в настоящее время не отображается? Любая помощь будет принята с благодарностью.


person Jose Ibanez    schedule 29.04.2013    source источник


Ответы (1)


Возможно, вам придется использовать свойство scrollToItemAtIndexPath:atScrollPosition:animated: объекта UICollectionView, чтобы прокрутить заголовок до представления, прежде чем VoiceOver сможет его прочитать.

Вы можете узнать, в каком indexPath вы находитесь в настоящее время, с помощью indexPathForItemAtPoint:, используя позицию, где они коснулись в представлении коллекции, а затем вы знаете, какой раздел идет после.

person iwasrobbed    schedule 29.04.2013
comment
Я не уверен, что понимаю. Я не думаю, что при включении Voice Over вы будете получать уведомления касания традиционным способом; однако я могу подключиться, когда ячейка получает фокус доступности. К сожалению, я не знаю, как определить, когда пользователь смахнул вверх или вниз, чтобы узнать, когда перейти к предыдущему или следующему разделу. Я почти уверен, что accessibilityScroll - это жест прокрутки тремя пальцами, а не тот, который я ищу. - person Jose Ibanez; 30.04.2013
comment
Честно говоря, я недостаточно использовал Voice Over, чтобы сказать вам. Это должно помочь вам в том, как подключить мой код выше к обратному вызову: stackoverflow.com/a/15616144/308315 - person iwasrobbed; 30.04.2013