2014-01-09 7 views
5

に調光UILabelとするuicontrolは、一度ポップオーバーまたは警告が存在して、コントロールが灰色に暗くなり(色合いの色を不飽和化)カスタムUISegmentedControlの場合色合いの色の変化

自分のUicontrolのサブクラスを構築I'am、どのUIViewの上tintColortintAdjustmentModeプロパティで、私は、(非飽和)UISegmentedControlまたは(UIButton ...)によると同じようにUILabelのテキストの色を暗くしたいサブビュー

としてUILabelを使用しています

答えて

10

ルック( iOS 7以来利用可能)とtintColorDidChangeメソッド。

これらをカスタム表示で上書きすると、淡色表示に対応できます。 iOS 7 UI Transitioning Guideとして

は言う:

アラートまたはアクションシートが表示されたら、iOSの7が自動的にその背後にある景色の色合いの色を暗く。この色の変化に対応するには、レンダリングでtintColorを使用するカスタム表示サブクラスでは、適切な場合にレンダリングを更新するためにtintColorDidChangeをオーバーライドする必要があります。

ソリューションは、次のようになります。

- (void)tintColorDidChange { 

    self.titleLabel.textColor = self.tintColor; 

} 
+0

ありがとうございました。編集に感謝しています。私は、1行のコード変更= –

+0

@PeterLapisuありがとう –

2

受け入れ答えは、私を助けていたが、結果は淡色表示色は画面が薄暗くされなかった場合でも、私のコントロールに適用されたということでした。私は、次の方法でこれを固定:

override func tintColorDidChange() { 
    switch tintAdjustmentMode { 
    case .Dimmed: 
     myLabel.textColor = UIColor.grayColor() 
    default: 
     myLabel.textColor = UIColor.blueColor() 
    } 
} 

これは正しく画面は淡色表示されている場合にのみ、コントロールにグレー色を適用します。

関連する問題