Я пошел в головоломку доступности.
У меня есть представление, для которого требуется как табличное представление сгруппированного стиля, так и (при нажатии UIBarButtonItem) простое табличное представление. Сгруппированный табличный вид используется по умолчанию. Я решил эту проблему, добавив контроллер простого представления в качестве подпредставления (сгруппированного) tableView, а затем удалив его при возврате к сгруппированному tableView. Работает очень хорошо.
Я сейчас реализую голос за кадром и столкнулся с проблемой. Когда отображается простой табличный вид (простой список имен), закадровый текст является «пустым списком» для всего представления. Происходит то, что сгруппированное табличное представление все еще там, и пустое (ноль строк), просто скрытое за простым табличным представлением. (Технически простой tableView является подпредставлением сгруппированного tableView, использующего тот же CGRect, что и сгруппированный tableView, поэтому фон не виден.)
То, что я хотел бы сделать, это «скрыть» пустой сгруппированный табличный вид от наложения голоса, чтобы активировались касания в простом табличном виде (говорят о содержимом ячейки). isAccessiblityItem
логическое значение, похоже, не имеет никакого эффекта.
Я понимаю, что одно представление с групповыми и простыми представлениями является нестандартным, но его использование здесь имеет смысл, поэтому изменение макета не вариант.
Вот упрощенная версия кода переключения таблиц.
Добавление простого табличного представления:
UITableView *plainTableView = plainViewController.tableView;
plainTableView.frame=groupedTableViewFrame;
plainTableView.delegate=self;
plainTableView.dataSource=self;
plainTableView.tag=1;
self.tableView.backgroundColor=[UIColor whiteColor];
[self.view addSubview:plainTableView];
[plainViewController release];
Снятие простой таблицы. Вид:
for (UIView *subview in [self.view subviews]) {
if (subview.tag == 1) {
[subview removeFromSuperview]; //kills the plain view
self.tableView.backgroundColor=[UIColor groupTableViewBackgroundColor];
}
}
Я пытался добавить различные настройки isAccessibilityItem
при добавлении простого tableView, например:
plainTableView.isAccessibilityElement=YES;
self.tableView.isAccessibilityElement=NO;
, которые не оказывают видимого влияния.
Любая помощь с благодарностью. Спасибо!