2017-12-15 10 views
0

年齢を含む登録フォームがあります。年齢を入力すると、UIDatePickerがポップアップして日付を選択できます。私はこれを達成するためにviewDidLoadに次のコードを実行しています:プログラムでUIDatePickerをスタイリングする

- (void)configureAgePicker { 

    //Initialise date picker 
    UIDatePicker *datePicker = [[UIDatePicker alloc] init]; 
    datePicker.datePickerMode = UIDatePickerModeDate; 
    datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_UK"]; 

    //Add toolbar to keyboard 
    UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
    UIBarButtonItem *doneBtn=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(resignKeyboards)]; 
    UIBarButtonItem *space=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
    [toolBar setItems:[NSArray arrayWithObjects:space,doneBtn, nil]]; 

    //style popup 
    toolBar.barTintColor = kPrimaryHighlightGradient; 
    datePicker.backgroundColor = kPrimaryHighlight; 
    datePicker.tintColor = kTextColor4; 

    self.ageTextfield.inputAccessoryView = toolBar; 
    self.ageTextfield.inputView = datePicker; 

} 

私の問題は、私は日付ピッカー自体の色のプロパティを変更できないことです。ツールバーの色を設定することはできますが、それは問題ありません。datePicker.backgroundColor & datePicker.tintColor何もしていないようです。ここではテキストフィールドの画像は、私は本当に私のアプリのカラースキームに一致するように、このポップアップの色を変更したい、

Popup UIDatePicker

です。私はUIDatePickersの前にストーリーボードを通し、ランタイム変数を使ってカラースキームを設定しなければならないことを覚えています。私はこの日付ピッカーをコードで作成し、それをテキストフィールドのキーボードに追加するので、色のスキームを変更するためにもっとや​​る必要はありますか?

答えて

0

これで色を設定する方法を理解しました。この場合は.backgroundColorまたは.tintColorのプロパティを使用することはできません。代わりに、環境変数と同じである(キーの値を設定する必要があります!

[datePicker setValue:kTextColor4 forKey:@"textColor"]; 

とするように設定THE背景̶c̶o̶l̶o̶u̶r̶̶(後に多くのフラストレーション)̶I FOUNDすることができますセットA背景̶c̶o̶l̶o̶u̶r̶ON THE DATE ̶p̶i̶c̶k̶e̶r̶'̶s̶層̶(当たり前)̶、̶̶̶̶̶̶̶_ d̶a̶t̶e̶P̶i̶c̶k̶e̶r̶.̶l̶a̶y̶e̶r̶.̶b̶a̶c̶k̶g̶r̶o̶u̶n̶d̶C̶o̶l̶o̶r̶ ̶=̶ ̶k̶B̶a̶c̶k̶g̶r̶o̶u̶n̶d̶C̶o̶l̶o̶r̶1̶.̶C̶G̶C̶o̶l̶o̶r̶;̶今、私の日付ピッカー、ポップアップされたスタイリングを正しく!̶

上記の解決策は背景色を設定しましたが、適切な色(白っぽい色合い)は設定できませんでした。私の人生にとって責任がある層は見つけられませんでした。デフォルトではなく暗い)背景色を設定するには、キーボードをデフォルトに設定する必要があります。

_datePicker.backgroundColor = kBackgroundColor1; 

enter image description here

そしてあなたの日付ピッカーはそうのような素敵な空想になります。 enter image description here