2012-01-30 15 views
6

Mam kontroler UITableViewController i próbuję dostosować nagłówki sekcji tak, aby wyglądały bardziej jak zwykły tekst. Zauważyłem, że po dodaniu podglądu do niestandardowego headerView (szczegółowo poniżej), łamie on nawigację nagłówka VoiceOver.Dodawanie widoku podrzędnego do widoku niestandardowegoForHeaderInSection łamie nawigację VoiceOver

Na przykład: Załóżmy, że mam tabelę z trzema nagłówkami: Nagłówek1, Nagłówek2, Nagłówek3.

Bez niestandardowej implementacji metody viewForHeaderInSection mogę przełączać rotor lektora w celu nawigacji po nagłówkach i wszystko działa zgodnie z przeznaczeniem.

Kiedy zaimplementuję metodę viewForHeaderInSection w następujący sposób, mogę przejść z nagłówka1 do nagłówka2 do nagłówka3 i z powrotem do nagłówka2, ale wtedy lektor traci wszystkie nagłówki (mówiąc "nie znaleziono nagłówków").

Znalazłem problem zaczyna się, gdy dodaję headerLabel jako subview do headerView. Próbowałem ustawić opcję headerLabel na ukryty element ułatwień dostępu, aby lektor nie podniósł go, ale problem nadal występuje.

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

} 

Wszelkie sugestie, dlaczego VoiceOver reaguje w ten sposób, byłyby mile widziane.

Dzięki.

+0

Mam do czynienia z tymi samymi problemami, byłoby wspaniale, gdyby ktoś miał aktualizacje na ten temat. – romrom

+0

Dodaj mnie do listy twórców, którzy chcieliby poprawić dostępność przy użyciu niestandardowych nagłówków sekcji. –

Odpowiedz

0

Jest to mało prawdopodobne, aby być odpowiedzią na pierwotny problem, ale właśnie obejrzałem podobny problem.

Posiadałem niestandardowe UIView dla nagłówków sekcji i utrzymywałem ich pulę w tablicy, a następnie wielokrotnie je ponownie wykorzystałem. To całkowicie zdezorientowało VoiceOvery, a przechodzenie do przodu lub do tyłu nie zawsze powodowało wybieranie poprzedniej lub następnej komórki zgodnie z oczekiwaniami.

Jednak gdy zmieniłem się w tworzenie nowego interfejsu UIView za każdym razem, gdy tableView: viewForHeaderInSection: został wywołany, błąd nawigacji VoiceOver został zatrzymany i wszystko działało dobrze. Moje widoki nagłówków są dostępne (isAccessibleElement) i mają zestaw etykiet.

Powiązane problemy