2012-07-24 13 views

Odpowiedz

10

nie mogłem dodać etykietę dostępności, ale znalazłem obejście.

wymienić navigationItem za tytuł widoku z UILabel, który ma dostęp Ustawiać.

UILabel *titleLabel = [[UILabel alloc] init]; 
titleLabel.text = @"myTitle"; 
[titleLabel setAccessibilityLabel:@"myCustomAccessiblityLabel"]; 
[titleLabel setFont:[UIFont boldSystemFontOfSize:20.0]]; 
[titleLabel setBackgroundColor:[UIColor clearColor]]; 
[titleLabel setTextColor:[UIColor whiteColor]]; 
[titleLabel sizeToFit]; 
self.navigationItem.titleView = titleLabel; 

Nie jestem pewien, dlaczego ustawienie etykiety dostępności nie działa, ale powyższy kod działa na moje potrzeby.

+2

Dziękujemy za opublikowanie obejścia problemu! Problem z UINavigationBar może być wart zgłoszenia w Apple. Są całkiem dobrzy w zakresie adresowania zgłoszeń błędów związanych z dostępnością (w tym problem z UIBarButtonItem, o którym wspomniałem powyżej). – Turix

+0

Świetny człowiek pomysł! – Husam

0

Od UINavigationBar dziedziczy po UIView, powinieneś być w stanie ustawić jego właściwość accessibilityLabel. Wypróbuj: yourUINavigationBar.accessibilityLabel = @"title";.

Być może trzeba się upewnić, że jest oznaczony jako element dostępności z yourUINavigationBar.isAccessibilityElement = YES; (i nie znajduje się w innym widoku, który jest również oznaczony jako element ułatwień dostępu). (Domyślam się, że ten ostatni fragment może być problemem, ponieważ wydaje się, że już wiesz o etykietach dostępności. Możesz użyć Inspektora dostępności w symulatorze, aby zobaczyć, czy tak jest, patrząc na pole wokół elementu, gdy dotknij go, aby zobaczyć, czy to wokół czegoś większego niż na pasku nawigacyjnym)

+0

To się nie sprawdziło, obawiam się. Ustawiłem parametr isAccessibilityElement = YES, a tytuł nie znajduje się w innym widoku oznaczonym jako element ułatwień dostępu. –

+0

@RobertWagstaff Sorry! Przyznaję, że nigdy nie miałem tego problemu, ale wydaje mi się, że być może trzeba to zrobić dla właściwości 'titleView' obiektu' UINavigationItem'. (BTW, to wydaje się podobne do problemu, który miałem z dostępnością 'UIBarButtonItem' w przeszłości, gdzie nie zachowywało się jak" normalne "rzeczy związane z UIView.) – Turix

+0

wciąż nie ma szczęścia, próbowałem: self.navigationItem. title = @ "myTitle"; [self.navigationItem.titleView setIsAccessibilityElement: YES]; [self.navigationItem.titleView setAccessibilityLabel: @ "AccessibilityTitle"]; wewnątrz loadView –

14

Działa to w iOS 8.2. W viewDidLoad:

self.navigationItem.accessibilityLabel = @"My accessible label"; 

Kiedy kontroler nawigacyjny przejścia do sterownika widzenia accessibilityLabel jest odczytywany zamiast kontrolera widoku title.

+0

Opracowano dla mnie na iOS 7.1.2. Jest to idealna odpowiedź i powinna być wybrana jako poprawna odpowiedź. – Vlad

+0

Najlepsza odpowiedź, praca na iOS9. – BollMose

+0

Zgadzam się, najlepsza odpowiedź. – Tyten

Powiązane problemy