SelectedTintColor
のデフォルトのUISegmentControl
を別のビューに一致させたいのですが、属性インスペクターで提供されるデフォルトのシステム*色から一致する色が見つかりません。
背景は.quaternarySystemFill
のようですが、明るいモードと暗いモードの両方で選択した色に一致する色がありません。
.selectedSegmentTintColor
はnil
を返すため、この方法で色を設定しても機能しません。
label.backgroundColor = segmentedControl.selectedSegmentTintColor
誰かが正しい色を知っていますか、それともカスタム色でこれを行う必要がありますか?
編集2:現在、この行は動作しますが、もっと良い方法があるでしょうか?
label.backgroundColor = label.traitCollection.userInterfaceStyle == .light ? .white : .tertiaryLabel
セグメントバーのティントカラーと同じ背景を変更したい場合は、以下を試してください。
yourLabel.backgroundColor = segmentControl.tintColor.
私が試した
var myNormalFont = UIFont.FromName( "OpenSans-SemiBold"、19f); var myNormalTextColor = UIColor.LightGray; AlertsSegmentedControl.SetTitleTextAttributes(new UITextAttributes(){Font = myNormalFont、TextColor = myNormalTextColor}、UIControlState.Normal); var mySelectedFont = UIFont.FromName( "OpenSans-SemiBold"、19f); var mySelectedTextColor = UIColor.White; AlertsSegmentedControl.SetTitleTextAttributes(new UITextAttributes(){Font = mySelectedFont、TextColor = mySelectedTextColor}、UIControlState.Selected); AlertsSegmentedControl.BackgroundColor = UIColor.Clear;