2016-09-17 4 views
2

iOSのバージョンが10より前のバージョンでUIDatePickerのテキストの色を変更する方法がありましたが、iOS10ではこれらのソリューションが機能しなくなりました。 についてtextColorを変更する機能を復元するにはどうすればよいですか?iOS10のUIDatePicker TextColorを変更する

if #available(iOS 10.0, *) { 
     //Not sure of a way to do something similar here. 
    } else { 
     //The following lines change the textColor of UIDatePicker to white in iOS9 and older. 
     self.setValue(UIColor.white, forKey: "textColor") 
     self.sendAction(Selector("setHighlightsToday:"), to: nil, for: nil) 
    } 
+0

テーブルビューを使用してカスタムピッカーを作成できます。それはちょっと複雑ですが、あなたが望むものすべてをカスタマイズすることができます – Janmenjaya

答えて

3

以下に示すようにSwift 3を使用しても達成できるので何も変更されていないようです。

import UIKit 

class ViewController: UIViewController 
{ 
    override func viewDidLoad() 
    { 
     super.viewDidLoad() 

     let temp: UIDatePicker = UIDatePicker(frame: self.view.frame) 
     temp.setValue(UIColor.purple, forKey: "textColor") 

     view.addSubview(temp) 
    } 

    override func didReceiveMemoryWarning() 
    { 
     super.didReceiveMemoryWarning() 
    } 
} 
+0

iOS10では、iOS9/8に表示される白の代わりに黒のテキストが表示されます。私はサブクラスの外で値を調整し、それが機能するかどうかを調べるようにします。 – AppreciateIt

+1

プログラムで作成されていない場合は、インスペクタを使用して設定することもできます。 ** User Defined Runtime Attributes **では、_keypath_値を 'textColor'に、_type_を' Color'に設定することができます。 – eshirima

+0

http://imgur.com/a/tYEQTこれはストーリーボード経由で見ると、現在の日付のみが白で残りは灰色または黒で表示されます。 (黒のものは白、灰色のものは無効なので無効)これらの他の選択可能な日付が黒のテキストカラーである理由は分かりません。 – AppreciateIt

1

私が使用しているコードはプライベートプロパティをUIDatePickerに設定しています。それは私有財産を使う危険です。次のOSバージョンで動作するという保証はありません。

あなたが行っていたことをAppleが検出した場合、あなたのアプリを拒否したでしょう。

これを行うためのパブリックインターフェイスがないかぎり、運が悪い可能性があります。 (そして、私は日付ピッカーのテキストの色を変更するためのパブリックインターフェイスを認識していません)

0

ピッカーを開くとテキストの色がリセットされたようです。

は、私が使用して変更するには、テキストの色を取得することができた:日付ピッカーが画面に現れた

setValue(UIColor.white, forKey: "textColor") 

後。それはすぐ後で、それが目立たないようにしてください。

私はあなたがあなたのピッカーを使用してかどうかはわかりませんが、私は私がテキストフィールドの入力ビューとして設定し、そのテキストフィールドのデリゲートを使用することができたしていた:

func textFieldDidBeginEditing(textField: UITextField) 

ピッカーが持っていたとき知っています開かれた。

正しく反映させるには少し遅れて発送する必要がありました。

更新

代わりUIDatePickerの民間の、textColorプロパティを使用しての、これは優れた外見とUILabelの公共の、textColorプロパティを使用することによって達成することができます。

UILabel.appearanceWhenContainedInInstancesOfClasses([UIDatePicker.self]).textColor = UIColor.whiteColor() 

これは、日付ピッカーが表示された後でも呼び出す必要があります。

関連する問題