У меня есть UITableViewController, и я пытаюсь настроить заголовки разделов, чтобы они больше походили на обычный текст. Я обнаружил, что когда я добавляю подпредставление в пользовательский headerView (подробно описанный ниже), он нарушает навигацию по заголовку VoiceOver.
Например: Допустим, у меня есть таблица с тремя заголовками: Header1, Header2, Header3.
Без специальной реализации метода 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 так реагирует.
Спасибо.