【发布时间】:2021-08-05 21:59:02
【问题描述】:
我目前有一个日期选择器。从本质上讲,我想做的是,如果您向左滑动日期将返回一天,即(1 月 2 日至 1 月 1 日)或向右滑动将日期向前滑动一天,即(1 月 2 日至 1 月 3 日)。我已经成功地实现了一种使用当前日期执行此操作的方法,但问题是它停在那里,因为它需要当前日期数据。基本上,这不会让我在几天内连续来回走动,因为它需要当前日期。我想让它无休止地来回1天。我怎样才能改进我的代码?提前谢谢你。
视图控制器:
@IBOutlet weak var userDate: UITextField!
private var datePicker: UIDatePicker?
override func viewDidLoad() {
super.viewDidLoad()
datePicker = UIDatePicker()
datePicker?.datePickerMode = .date
datePicker?.addTarget(self, action: #selector(Test.dateChanged(datePicker:)), for: .valueChanged)
userDate.inputView = datePicker
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE, MMM d, yyyy"
let todayDate = dateFormatter.string(from: Date.init())
self.userDate.text = todayDate
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(self.handleGesture(gesture:)))
swipeLeft.direction = .left
self.view.addGestureRecognizer(swipeLeft)
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.handleGesture(gesture:)))
swipeRight.direction = .right
self.view.addGestureRecognizer(swipeRight)
}
@objc func handleGesture(gesture: UISwipeGestureRecognizer) -> Void {
if gesture.direction == UISwipeGestureRecognizer.Direction.right {
print("Swipe Right")
view.backgroundColor = .black
Calendar.current.date(byAdding: .day, value: -1, to: datePicker.date)! // WHAT NEEDS TO BE CHANGED IN ORDER FOR IT TO CONTINUOSLY ALLOW GOING BACK THE DATES
}
else if gesture.direction == UISwipeGestureRecognizer.Direction.left {
print("Swipe Left")
view.backgroundColor = .yellow
Calendar.current.date(byAdding: .day, value: 1, to: datePicker.date)! // WHAT NEEDS TO BE CHANGED IN ORDER FOR IT TO CONTINUOSLY ALLOW GOING FORWARD THE DATES
}
}
【问题讨论】:
标签: swift datepicker nsdate