0
0

iOS13以降プレースホルダー内の背景はダークモードを考慮して実装しなければならない説

Last updated at Posted at 2022-10-12

はじめに

TextFieldのプレースホルダー内に’ここに入力’的なヒントを付け加えたい。

結論

iOS13以降、ダークモードが搭載された端末において、プレースホルダー内の文字色を明示的に設定することはあまりよろしくない。というのも、ユーザーがライトモードとダークモードの設定を変更するとTextFieldの背景が動的に変化する。そのため、それに応じてテキストの色が変化する実装をしなければならない。

詳細

  1. ViewDidLoadなど描画を担当するメソッドに以下コードを記載する
Swift
override func viewDidLoad() {
    super.viewDidLoad()
    //メインの背景の上に重ねられるコンテンツの色。
    textField.backgroundColor = .secondarySystemBackground
    textField.textColor = .label
}

おわりに

iOS13以前も対応しているアプリを開発している場合、#availableなどでiOS13以降と以前の処理を分けて使えば、この辺りは上手く実装できるではないだろうか。iOS13以前の場合は、各々背景と文字の実装はする必要ありだが。

参考記事

Apple公式placeholderTextについて

開発環境

  • Xcode-13.4.1
  • iOS13以降
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0