20210913のiOSに関する記事は2件です。

【Swift】アプリ内でダークモード/ライトモードを設定したい

やりたいこと アプリ内で、OS設定によらずライトモード/ダークモードを設定したい。 設定方法 1行加えるだけで、即時にアプリ全体に反映されます。 ダークモードに設定する場合 ViewController.swift UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .dark ライトモードに設定する場合 ViewController.swift UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .light OS設定に従う場合 ViewController.swift UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .unspecified 起動時に設定する場合は、initial view controllerの viewDidLoad() 内に書くと良いでしょう。 なお、AppDelegate内の application(_:didFinishLaunchingWithOptions:) 内に記載しても、うまく動作しません。(詳しく調べてはいませんが、おそらく、UIWindowオブジェクトがまだ構成されていないからではないかと思います。) 動作確認環境 Xcode: 12.5 iOS: 14.7.1 Swiftバージョン: Swift 5.4 以上
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

1年間Flutterで開発していてわかったアクセシビリティの問題(iOS編)

この1年コンスタントにFlutterでコーディングをしていてわかったスクリーンリーダー(VoiceOver)の問題についての記録です。 Androidについては1年間Flutterで開発をしていてわかったアクセシビリティの問題(Android編)をご覧ください。 1. 項目を選択したときのガイドアナウンスが読み上げられない ボタンや項目などを選択したときには通常 開くにはダブルタップします のようなアナウンスがあります。 これによりユーザは項目が操作可能かどうかを知ることができます。 2. リストをスクロールしたときの度合いを読み上げない 通常リストをスクロールさせた場合 リストの総数 表示されている項目の開始位置 表示終了位置 が 全50行中10行目から20行目まで のように読み上げられます。 3. 垂直スクロールバーにフォーカスされていない 検索をすると表示させることは造作もないことのようですが、残念ながらVoiceOverがフォーカスできていないようです。(水平も同様) 垂直スクロールバーでは その画面がトータルでいくつの画面が連なって構成されているのかという情報の読み上げ 1本指の下または上のスワイプでスクロールを行うことができる という利点があります。 4. Semanticsクラスのヒントがアナウンスされない 項目に対し、アクセシビリティ機能を付加するクラスがSemanticsクラスです。 その中のhint onTapHint onLongPressHint の内容が読み上げられません。 1. によく似ていますが、これはOSがデフォルトで用意している内容をアナウンスします。 (少なくともAndroidではそのように動いていると思われます) 上記の3つは開発者側でアナウンスする内容を指定するプロパティです。 ユーザに明確に操作したときの結果を伝えることができます。 まとめ 上記は開発をしつつissueとして報告していますが、改善されていない問題です。 Androidの場合は正常に動作しています。 またWebView()で記述した場合には発生しません。 issueで報告しても暖簾に腕押しで困っています。 Flutterの開発に関わっている方やバグ修正が得意な方がいらっしゃいましたら改善に力を貸していただけますと幸いです。 下記のサンプルコードで上記4つの問題が確認できます。 VoiceOverをONにしてお試しください。 VoiceOverはSiriでON/OFFができます。 安易に設定から有効にするとジェスチャーが変わり、戸惑われますのでご注意ください。 VoiceOverサンプル
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む