Имам куп бутони на екрана, които са позиционирани интуитивно визуално, но не се четат в интуитивен ред от VoiceOver. Това е така, защото някои бутони като Нагоре и Надолу са разположени един над и под друг. Въпреки това гласът започва да чете отляво надясно, отгоре надолу, изглежда.
Това води до гласово четене на бутона вдясно от „Нагоре“ след „Нагоре“, вместо да чете „Надолу“ веднага след това.
Как да принудя voiceover да прочете бутона, който искам да прочета? Трябва да спомена, че използвам функцията за плъзгане, за да преминете през елементите на гласа.
Всички мои бутони са подкласове на UIView и UIButton. Ето пример за инициатор на бутон, който използвам. Игнорирайте броя на пикселите - знам, че това е лоша форма, но в момента съм в затруднение:
UIButton* createSpecialButton(CGRect frame,
NSString* imageName,
NSString* activeImageName,
id target,
SEL obClickHandler)
{
UIButton* b = [UIButton buttonWithType:UIButtonTypeCustom];
[b setImage:[GlobalHelper nonCachedImage:imageName ofType:@"png"]
forState:UIControlStateNormal];
[b setImage:[GlobalHelper nonCachedImage:activeImageName ofType:@"png"]
forState:UIControlStateHighlighted];
[b addTarget:target action:obClickHandler forControlEvents:UIControlEventTouchUpInside];
b.frame= frame;
return b;
}
- (UIButton *) createSendButton {
CGFloat yMarker = 295;
UIButton* b = createSpecialButton(CGRectMake(160, yMarker, 70, 45),
@"Share_Btn",
@"Share_Selected_Btn",
self,
@selector(sendAction));
b.accessibilityHint = @"Send it!";
b.accessibilityLabel = @"Stuff for voiceover to be added";
[self.view addSubview:b];
return b;
}