2012-01-30 14 views
6

Tengo un UITableViewController y estoy tratando de personalizar los encabezados de las secciones para que se vean más como texto sin formato. Estoy descubriendo que cuando agrego una subvista al headerView personalizado (detallado a continuación), se rompe la navegación del encabezado de VoiceOver.Agregar una subvista a una vista personalizadaForHeaderInSection rompe la navegación de VoiceOver

Por ejemplo: Supongamos que tengo una tabla con tres encabezados: Encabezado1, Encabezado2, Encabezado3.

Sin una implementación personalizada del método viewForHeaderInSection puedo cambiar el rotor de voz en off para navegar por los títulos y todo funciona según lo previsto.

Cuando implemente el método viewForHeaderInSection de la siguiente manera puedo pasar de Header1 a Header2 a Header3 y hacer una copia de seguridad de Header2, pero luego la voz en off pierde todos los encabezados (diciendo "no se encontraron encabezados").

He encontrado que el problema comienza cuando agrego el headerLabel como una subvista a headerView. He intentado configurar headerLabel a un elemento oculto de accesibilidad para que la voz en off no lo recoja, pero el problema persiste.

- (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; 

} 

Se agradecerá cualquier idea sobre por qué VoiceOver reacciona así.

Gracias.

+0

Me enfrento a los mismos problemas, sería genial si alguien tuviera actualizaciones sobre ese tema – romrom

+0

Añádame a la lista de desarrolladores que desean mejorar la accesibilidad al usar encabezados de sección personalizados. –

Respuesta

0

Es poco probable que sea la respuesta al problema original, pero acabo de solucionar un problema similar.

Tenía UIView personalizado para encabezados de sección, y mantuve un conjunto de estos en una matriz, y los reutilicé ocasionalmente. Este VoiceOvery confundido por completo, y avanzar o retroceder no siempre resulta en la selección de la celda anterior o la siguiente como se esperaba.

Sin embargo, cuando cambié a la creación de una nueva UIView cada vez que se llamaba tableView: viewForHeaderInSection: esta confusión de navegación de VoiceOver se detenía y todo funcionaba bien. Mis vistas de encabezado son accesibles (isAccessibleElement) y tiene un conjunto de etiquetas.

Cuestiones relacionadas