Ios 日历文本标签将不会更新
在Swift 3中,如果使用Ios 日历文本标签将不会更新,ios,swift3,nsdate,nsdateformatter,Ios,Swift3,Nsdate,Nsdateformatter,在Swift 3中,如果使用Date和Calendar而不是NSDate和NSCalendar,则效果更佳 现在,如果要将sixtyDay标签设置为日期选择器日期的30天之后的日期,则需要将datePicker.date与date一起使用(通过添加:)而不是今天的日期 datePicker.addTarget(self, action: #selector(datePickerChanged(datePicker:)), for: UIControlEvents.valueChanged
Date
和Calendar
而不是NSDate
和NSCalendar
,则效果更佳
现在,如果要将sixtyDay
标签设置为日期选择器日期的30天之后的日期,则需要将datePicker.date
与date一起使用(通过添加:)
而不是今天的日期
datePicker.addTarget(self, action: #selector(datePickerChanged(datePicker:)), for: UIControlEvents.valueChanged)
dateFormat()
} //this works
func dateFormat() {
let today = NSDate()
let dateFormatter = DateFormatter()
let short = DateFormatter.Style.short
dateFormatter.dateStyle = short
dateFormatter.dateFormat = "MM-dd-YYYY"
let startDate = dateFormatter.string(from: datePicker.date)
dateLbl.text = startDate
//this works but datePicker date when moved will not update
let thirtyDays = NSCalendar.current.date(byAdding: Calendar.Component.day,value: 30, to: today as Date)
let tomorrowSixty = dateFormatter.string(from: thirtyDays!)
sixtyDay.text = tomorrowSixty
}
func datePickerChanged(datePicker:UIDatePicker){
dateFormat()
}
}
注意:如果您使用
DateFormatter
设置dateFormat
,则无需使用DateFormatter
设置dateStyle
,而且正确的年份格式化程序是yyyy
而不是yyyyyy
,dateLbl来自哪里?dateLbl是出口:IBOutlet弱var datePicker:我的提货员!IBL弱var dateLbl:UILabel!IBVAR第六十天:UILabel!如果移动了datepicker拨盘,则生成上的sixtyDay.text不会更新…日期在dateLbl.text上会更改,但在sixtyDay.text上不会更改,它保持不变day@rpbones531检查编辑后的答案更改行let thirtyDays=Calendar.current.date(通过添加:.day,值:30,到:datePicker.date)
@rpbones531欢迎伴侣:)
func dateFormat() {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let startDate = dateFormatter.string(from: datePicker.date)
dateLbl.text = startDate
//this works but datePicker date when moved will not update
let thirtyDays = Calendar.current.date(byAdding: .day, value: 30, to: datePicker.date)
let tomorrowSixty = dateFormatter.string(from: thirtyDays!)
sixtyDay.text = tomorrowSixty
}
func datePickerChanged(datePicker:UIDatePicker){
dateFormat()
}