周日
解决唤出日历的方法:
在第一次使用日历模式时,撤销键盘(resignFirstResponder)
然后让navigationbar和dataPicker显示(切换回文字模式则隐藏)
// 日历模式
@IBAction func CalModel() {
AddState.setImage(UIImage(named:"add_normal"),for: UIControlState.highlighted)
AddState.setImage(UIImage(named:"add_normal"),for: UIControlState.normal)
CalState.setImage(UIImage(named:"deadline_highlighted"),for: UIControlState.highlighted)
CalState.setImage(UIImage(named:"deadline_highlighted"),for: UIControlState.normal)
textField.resignFirstResponder() //撤销键盘
dueDateNavigationBar.isHidden = false //唤出日历Bar
dueDateNavigationBar.frame = CGRect(x:0, y:411, width:375, height:40)
datePicker.isHidden = false; //唤出日历
self.view.addSubview(datePicker)
datePicker.frame = CGRect(x:0, y:451, width:375, height:200)
datePicker.setDate(dueDate, animated: false)
updateDueDate() //更新bar上的date
}
datePicker的高度是216,iphone7的高度是667,就让其从451开始,tableView至451结束(偷懒的做法)
因为451以下的tableView区域是无意义的,文字模式和日历模式都会遮挡451以下的区域。
datePicker.isHidden = false; //唤出日历
self.view.addSubview(datePicker)
datePicker.frame = CGRect(x:0, y:451, width:375, height:200)
解决日历带Bar的问题:
一开始尝试用Label+2个button内嵌成view,后来发现并不好用
直接用navigation bar + 2个 baritem即可。