27

概要: UIAlertView のアクセシビリティ動作を複製したいと考えています。この場合、背景ビューは引き続き表示されますが、VoiceOver は操作しません。

詳細: iPhone アプリのアクセシビリティを実装しましたが、1 つ問題が残っています。場合によっては、ラベルと閉じるボタンを含む他のすべてのビュー (部分的に透明で、元のビューの大部分を覆う) の上に大きなビューを表示します。つまり、基本的にカスタム ポップアップ/アラート ビューです。問題は、VoiceOver がその下にあるビュー/コントロールを引き続き表示することです。

非表示のビューが VoiceOver によって表示されないようにする方法の 1 つは、カスタム ビューの背景全体にアクセスできるように設定することです。ただし、これを含むビューは実際にはユーザーが操作するべきではなく、そのサブビュー (ラベル/ボタン) のみを操作する必要があるため、これは実際には望んでいるものではありません。

4

4 に答える 4

24

トップレイアウトビューでこれを使用する必要があると思います:

Objective-C

- (BOOL)accessibilityViewIsModal {
    return YES;
}

迅速

accessibilityViewIsModal = true

これにより、非表示になっている View Controller のすべての要素にアクセスできなくなります。

実装ではtrue、ビューを表示するときに設定し、falseそのビューを閉じるときに設定することができます。

より詳しい情報

注: iOS5 以降が必要です

于 2012-12-04T12:36:58.537 に答える
5

スイフト4

迅速にこれを試してください: ビューが表示される前に、viewController のビューを次のようにセットアップします。

yourViewController.view.accessibilityViewIsModal = true

また、viewWillAppear で self.view.accessibilityViewIsModal を true に設定してみてください

override func viewWillAppear(_ animated: Bool) {
   super.viewWillAppear(animated)
   view.accessibilityViewIsModal = true
}

これをviewWillAppearに追加して、モーダルまたはポップアップビューが表示されているときにスクリーンチャンス通知を送信すると役立つ場合もあります。

UIAccessibility.post(notification: .screenChanged, argument: nil)
于 2018-11-16T04:39:37.667 に答える
-3

アイテムを非表示にする場合は、isAccessibilityItemNO に設定できます。

于 2011-08-08T07:45:26.517 に答える