我有一个自定义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