[解決済み] iOS 13でUISegmentedControlのセグメントの色を変更するには?
質問
A
UISegmentedControl
は iOS 13 で新しい外観を持ち、セグメント化されたコントロールの色を変更する既存のコードは、もはや以前のようには機能しません。
iOS 13 より前のバージョンでは
tintColor
を設定することができ、セグメントコントロールの周囲の境界線、セグメント間の線、選択されたセグメントの背景色に使用されました。そして、foreground color 属性を使用して、各セグメントにあるタイトルの色を
titleTextAttributes
.
iOS 13 では
tintColor
は何もしません。セグメント化されたコントロールの
backgroundColor
を使用して、セグメント化されたコントロールの全体的な色を変更することができます。しかし、選択されたセグメントの背景として使用される色を変更する方法は見当たりません。テキスト属性の設定はまだ有効です。タイトルの背景色を設定することも試みましたが、それはタイトルの背景にのみ影響し、選択されたセグメントの残りの背景色には影響しません。
の現在選択されているセグメントの背景色を変更するにはどうすればよいのでしょうか?
UISegmentedControl
の現在選択されているセグメントの背景色を変更するにはどうしたらよいでしょうか? パブリック API を使用して、プライベートなサブビュー構造を掘り下げる必要のない、適切なソリューションはありますか?
iOS 13 には、新しいプロパティはありません。
UISegmentedControl
または
UIControl
での変更はありません。
UIView
は関係ありません。
どのように解決するのですか?
iOS 13b3 からは、このような場合に備えて
selectedSegmentTintColor
に
UISegmentedControl
.
セグメント化されたコントロールの全体の色を変更するには、その
backgroundColor
.
選択されたセグメントの色を変更するには
selectedSegmentTintColor
.
選択されていないセグメントのタイトルの色/フォントを変更するには、次のようにします。
setTitleTextAttributes
の状態で
.normal
/
UIControlStateNormal
.
選択されたセグメントのタイトルの色/フォントを変更するには
setTitleTextAttributes
の状態で
.selected
/
UIControlStateSelected
.
画像を含むセグメント化されたコントロールを作成する場合、画像がテンプレート画像として作成されるなら、セグメント化されたコントロールの
tintColor
は画像の色付けに使用されます。しかし、これには問題があります。もし
tintColor
と同じ色にすると
selectedSegmentTintColor
と同じ色にすると、選択されたセグメントには画像が表示されなくなります。もし
tintColor
と同じ色にすると
backgroundColor
と同じ色にすると、選択されていないセグメントの画像は表示されなくなります。つまり、画像付きのセグメントコントロールは、すべてを表示するために3つの異なる色を使用する必要があります。また、テンプレート以外の画像を使用する場合は
tintColor
.
iOS 12 以前のバージョンでは、セグメント化されたコントロールの
tintColor
を設定するか、アプリ全体の色合いカラーに依存します。
関連
-
クラッシュエラー libc++abi.dylib: NSException 型のキャッチできない例外で終了_allanGold のブログ - ProgrammerITS401
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] Objective-CでNSNotificationCenterを通してメッセージを送受信する?
-
[解決済み] CocoaPodsの最新バージョンにアップデートしますか?
-
[解決済み] NSNotificationCenterのaddObserver in Swift
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
-
[解決済み】iOSアプリの名前を変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] インポート vs #インポート - iOS 7
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み] SwiftでUIImageをソリッドカラーで作成する