2017-12-15 3 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"]; 

하고 설정 한 배경 ̶c̶o̶l̶o̶u̶r̶ ̶ (후 많은 좌절) ̶ 내가 발견 할 수 있습니다 설정 배경 ̶c̶o̶l̶o̶u̶r̶ 날짜 ̶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

관련 문제