Добавление подпредставления в пользовательский viewForHeaderInSection нарушает навигацию VoiceOver

У меня есть 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 так реагирует.

Спасибо.

6
задан ranonk 30 January 2012 в 20:51
поделиться