Голосовая доступность UITableView подпредставлений

У меня сейчас есть UITableViewController и я добавляю UIDatePicker как подпредставление следующим образом:

self.datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 200, 200, 200)];
self.datePicker.datePickerMode = UIDatePickerModeTime;
[self.tableview addSubview:self.datePicker];

который побежал в viewDidLoad,

Проблема в том, что UIDatePicker не отображается как доступный элемент и не считывает текущую дату и время с включенным VoiceOver. Я пытался отключить accessibilityElementsHidden настройка tableview, но это также отключает доступность subview. По сути, если я могу отключить доступность UITableView, когда выбран UIDatePicker, то он будет работать.

Примечание. UITableViewCells не перекрывают UIDatePicker.

1 ответ

Решение

UITableView не предназначен для добавления подпредставлений непосредственно к нему. Он реализует UIAccessibilityContainer неофициальный протокол и предоставляет элементы доступности для пользователей VoiceOver, координируя с делегатом табличного представления.

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

Для получения дополнительной информации см. Расширение доступности табличных представлений.

Другие вопросы по тегам