На самом деле нет необходимости создавать категорию, указанную Виктором Крыкуном.Достаточно установить accessibilityIdentifier - в документации Apple говорится (iOS 6.1.3):
Атрибуты метки и идентификатора доступности
Атрибут идентификатора позволяет использоватьболее описательные имена для элементов.Это необязательно, но он должен быть настроен на выполнение сценарием одной из следующих двух операций:
- Доступ к представлению контейнера по имени и одновременный доступ к его дочерним элементам.
- Доступ к представлению UILabel по имени для получения отображаемого текста (через атрибут значения).
Также может потребоваться явная установка
uilabel.accessibilityLabel = NSLocalizedString(@"Element description", @"Localized accessibility label for VoiceOver");
uilabel.accessibilityValue = uilabel.text;
В моем собственном коде у меня есть один случай, когда он просто работает, и другой, где я должен явно установить значения.Мое лучшее предположение о разнице заключается в том, что, может быть, это потому, что я ввел, а затем удалил метку доступности в Интерфейсном Разработчике в одном случае - в итоге может быть разница между нулевой и пустой строкой или чем-то еще.Код Apple явно хрупок (SDK 6.1.3, тестирование на симуляторе iOS 5.0).