1
想象一下,屏幕上的每個視圖都會顯示有關特定日期的某些信息。向右滑動將日期提前一天,向左滑動顯示昨天的數據。如何通過日期繼續?
我已經設法通過捕獲滑動手勢和更新屏幕上的數據來實現這一點,但我沒有得到滑動動畫。我猜測這樣做的正確方法是將視圖控制器放到自身並更新,但我不確定。任何人都可以建議正確的方式來做到這一點?
想象一下,屏幕上的每個視圖都會顯示有關特定日期的某些信息。向右滑動將日期提前一天,向左滑動顯示昨天的數據。如何通過日期繼續?
我已經設法通過捕獲滑動手勢和更新屏幕上的數據來實現這一點,但我沒有得到滑動動畫。我猜測這樣做的正確方法是將視圖控制器放到自身並更新,但我不確定。任何人都可以建議正確的方式來做到這一點?
你需要爲每個方向這樣的塊。這是用於向右滑動(返回)。另一個方向是顛倒的。
UIView.animateWithDuration(NSTimeInterval(0.1), animations: {
//swipes view off screen
self.calView.frame.origin.x = self.view.frame.width
})
UIView.animateWithDuration(NSTimeInterval(0), delay: NSTimeInterval(0.1), options: UIViewAnimationOptions(rawValue: 0), animations: {
//jumps to other side
self.calView.frame.origin.x = -self.view.frame.width
}, completion: { _ in
//reload data, subtract one, whatever
self.setCurrentDate()
self.collectionView?.reloadData()
})
UIView.animateWithDuration(NSTimeInterval(0.1), delay: NSTimeInterval(0.2), options: UIViewAnimationOptions(rawValue: 0), animations: {
//swipes back to center
self.calView.frame.origin.x = 0
}, completion: nil)
我認爲可以添加一個子VC作爲其視圖處理動畫的VC。並在動畫後移除它。 – duan
不要繼續。動畫。以某種方式將視圖從屏幕上動畫化,然後更新代碼,然後從另一側將其重新制作。 – Tim
好吧,聽起來不錯 - 有一個簡單的例子,請在某個地方? – Evernoob