5.完成生日输入的功能
有了上面2节的理解我们可以尝试完成前面生日输入的功能了。
首先我们来完成birthday输入框的改变同步到DateRow中日期的功能。
为了实现这一功能,我们需要给DateRow起个“名字”,将之前创建DateInlineRow的代码
<<< DateInlineRow(){row in row.title = "选择日期" }
修改为如下内容:
<<< DateInlineRow("birthdayPicker"){row in row.title = "选择日期" }
接着我们在
<<< NameRow("birthdayInput"){row in row.placeholder = "输入你的出生日期 : 2011-12-12" }
之后添加如下代码:
.onChange {row in //防止输入内容为空 guard let string = row.value,string.count > 0 else {return} let ft = DateFormatter() ft.dateFormat = "yyyy-MM-dd" //为了简化目的省略格式检查代码 if let birthday = ft.date(from: row.value!){ // 按照名称找到对应Row let dateRow = self.form.rowBy(tag: "birthdayPicker") as! DateInlineRow // 更新dateRow的值 dateRow.