我有一個自定義UIView
組件,其中有一個UITextField
,UIImageView
和另一個UIView
。從自定義組件中點擊UITextField時打開UIDatePicker
我需要更改UITextField
的行爲,以在點擊時顯示UIDatePicker
。這是我嘗試執行的代碼,但由於某些原因,日期選擇器沒有打開時,它的挖掘:
class TextFieldWithFeedback : UIView {
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var underlineView: UIView!
override func draw(_ rect: CGRect) {
let datePicker = UIDatePicker()
datePicker.datePickerMode = .date
self.textField.inputView = datePicker
}
}
當我用我的視圖控制器(下面的代碼),它的工作相同的代碼:
override func viewDidLoad() {
super.viewDidLoad()
let datePicker = UIDatePicker()
datePicker.datePickerMode = .date
customView.textField.inputView = datePicker
}
現在,這個解決方案的工作原理,但它不是理想的,因爲我有8個自定義視圖,它會更好地設置一次而不是8次。
我應該使用哪種View類的方法來設置datePicker?由於繪製不起作用。
此外,如何在用戶選擇日期時附加功能來修改我的UITextField
值?
評論你需要保持你的日期的引用人民更有幫助picker –
只需將其聲明爲您的視圖控制器的屬性 –
@LeoDabus如此在ViewController上實例化DatePicker並將其設置在每個customView上?在繪圖方法 – leofontes