iOS Objective-C VoiceOver 正在更新可用的辅助元素

iOS Objective-C VoiceOver Updating Available Accessible Elements

当到达 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;
    });
}

这是有效的,但是有一个缺点。焦点停留在第一个视图上,这意味着左右滑动不会改变焦点。获得 "unstucked" 的唯一方法是点击另一个元素。

那么如何通知系统 accessibilityElements 发生了更新?我希望滑动手势能正常工作。

当您将 accessibilityElements 设置为 nil 时,使用 UIAccessibilityScreenChangedNotification 将可访问性元素作为传入参数来通知更新。

您将能够通知系统并根据需要使用滑动手势