У меня есть UITableViewController, и я пытаюсь настроить заголовки разделов, чтобы они больше походили на обычный текст. Я обнаружил, что когда я добавляю подпредставление в пользовательский headerView (подробно описано ниже), оно нарушает навигацию заголовка VoiceOver.
Например: скажем, у меня есть таблица с тремя заголовками: Заголовок1, Заголовок2, Заголовок3.
Без пользовательской реализации метода viewForHeaderInSection я могу переключать ротор закадрового переключателя для навигации по заголовкам, и все работает как задумано.
Когда я реализую метод viewForHeaderInSection следующим образом, я могу переместиться из Header1 в Header2 в Header3 и обратно в Header2, но затем голосовое управление теряет все заголовки (говоря: «заголовки не найдены»).
Я обнаружил, что проблема начинается, когда я добавляю headerLabel как подпредставление к headerView. Я попытался установить headerLabel для скрытого элемента доступности, чтобы голос за кадром не поднял его, но проблема сохраняется.
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,tableView.frame.size.width,30)];
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 0, headerView.frame.size.width-120.0, headerView.frame.size.height)];
headerLabel.textAlignment = UITextAlignmentLeft;
headerLabel.font = [UIFont boldSystemFontOfSize:22];
headerLabel.text = [headersArray objectAtIndex:section];
headerLabel.backgroundColor = [UIColor clearColor];
[headerView addSubview:headerLabel];
return headerView;
}
Любые идеи, почему VoiceOver реагирует так, будут приветствоваться.
Спасибо.