У нас есть невидимые UIViews, настроенные и помеченные как доступные для голоса IOS.Смахивание перемещает маркер контура из одного вида в другой, но если мы перемещаем позицию вида с помощью SetFrame, и это текущий выбранный вид для Voiceover, он не перемещает кадр вместе с ним.Если мы затем коснемся или перетащим на тот же вид, он поднимет новую позицию.
Есть идеи, как программно переместить контур?
Вот наш грубый код
Мыподдерживать массив областей и текстов на экране, которые должны быть видностями доступности, и создавать и обновлять невидимые виды над этими областями.
// Если мы обнаружим, требуется новое представление
LocalAccBounds[i].view= [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)] retain];
LocalAccBounds[i].view.backgroundColor=[UIColor clearColor];
LocalAccBounds[i].view.isAccessibilityElement = true;
LocalAccBounds[i].view.userInteractionEnabled = false;
LocalAccBounds[i].view.accessibilityLabel = [NSString stringWithCString:LocalAccBounds[i].txt encoding:NSUTF8StringEncoding];
UIViewController * lVC = [[[UIApplication sharedApplication] keyWindow] rootViewController];
[lVC.view addSubview:LocalAccBounds[i].view];
// Если мы обнаружим, что существующее представление переместилось
[LocalAccBounds[i].view setFrame:CGRectMake(LocalAccBounds[i].x1*xsc,LocalAccBounds[i].y1*ysc, LocalAccBounds[i].x2*xsc-LocalAccBounds[i].x1*xsc, LocalAccBounds[i].y2*ysc-LocalAccBounds[i].y1*ysc-0)];
// Если мы обнаружим, что существующее представление больше не требуется
[LocalAccBounds[i].view removeFromSuperview];
[LocalAccBounds[i].view release];
LocalAccBounds[i].view=0;
Когда мы перемещаем существующее представление, например, прокручиваемих влево или вправо, это не перемещает контур с видомИногда через секунду или около того маркер контура перемещается к одному или другому из существующих контуров, но не обязательно там, где было последнее касание.
Спасибо
Шон