2016-09-17 7 views
2

10시 이전에 iOS 버전에서 UIDatePicker의 텍스트 색상을 변경하는 방법이 있었지만 iOS10에서는 더 이상 작동하지 않는 것으로 나타났습니다. UIDatePicker에 대해 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

아래 그림과 같이 스위프트 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 버전에서 작동한다는 보장은 없습니다.

애플이 자신이 수행 한 작업을 감지하면 앱을 거부했을 것입니다.

공용 인터페이스가 없으면 운이 좋지 않을 수 있습니다. (그리고 나는 날짜 선택 도구의 텍스트 색을 변경하기위한 공용 인터페이스에 대해 알지 못합니다.)

0

피커를 열면 텍스트 색상이 재설정 된 것으로 보입니다.

나는 사용하여 변경할 텍스트 색상을 얻을 수있었습니다 : 날짜 선택 화면에 나타 났었

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

후. 그 후에는 충분히 빨리하고 눈에 띄지 않게하십시오.

나는 당신이 당신의 선택기를 사용하는 방법을 잘 모르겠어요,하지만 난 내가 텍스트 필드에 대한 입력보기로 설정했다, 그래서 텍스트 필드 위임 사용할 수 있었다 : 피커했을 때

func textFieldDidBeginEditing(textField: UITextField) 

가 알을 열렸습니다.

올바르게 적용하려면 약간의 지연 시간이 필요합니다. 대신 UIDatePicker의 개인 텍스트 색상 속성을 사용

업데이트

이 더 나은 외모와 UILabel의의 공개 텍스트 색상 속성을 사용하여 달성 될 수있다.

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

날짜 선택 도구가 작동 한 후에도 호출해야합니다.