2015-11-13 56 views
1

想象一下,屏幕上的每個視圖都會顯示有關特定日期的某些信息。向右滑動將日期提前一天,向左滑動顯示昨天的數據。如何通過日期繼續?

我已經設法通過捕獲滑動手勢和更新屏幕上的數據來實現這一點,但我沒有得到滑動動畫。我猜測這樣做的正確方法是將視圖控制器放到自身並更新,但我不確定。任何人都可以建議正確的方式來做到這一點?

+0

我認爲可以添加一個子VC作爲其視圖處理動畫的VC。並在動畫後移除它。 – duan

+2

不要繼續。動畫。以某種方式將視圖從屏幕上動畫化,然後更新代碼,然後從另一側將其重新制作。 – Tim

+0

好吧,聽起來不錯 - 有一個簡單的例子,請在某個地方? – Evernoob

回答

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)