当到达ViewController时,我遇到了VoiceOver关注错误视图(不是第一个)的问题。我试图通过使accessibilityElements只包含我想要关注的视图来解决它,并在1秒后清除它。
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.accessibilityElements = @[self.firstView];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC), dispatch_get_main_queue(), ^{
self.view.accessibilityElements = nil;
});
}
这是有效的,但是有一个缺点。焦点停留在firstView上,这意味着左右滑动不会改变焦点。获得“不被打破”的唯一方法是利用另一个元素。
那么如何通知系统accessibilityElements发生了更新?我想要滑动手势。
将accessibilityElements
设置为nil时,请使用UIAccessibilityScreenChangedNotification
通知更新,并将accessibility元素作为传入参数进行聚焦。
您将能够根据需要通知系统并使用滑动手势。