2016-01-24 76 views
3

我想在tableview單元格中添加動畫和動畫工作正常。但是,當我試圖停止通過點擊它不停止的tableview的滾動。通常在滾動tableview中,如果我們點擊屏幕,滾動將停止。但是當我添加這些動畫不起作用。下面是我使用的動畫tableview滾動不停止點擊如果我動畫tableview單元格

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    let rotationTransform = CATransform3DScale(CATransform3DIdentity, 0.4, 0.4, 0) 

    cell.layer.transform = rotationTransform 
    UIView.animateWithDuration(0.5) {() -> Void in 
     cell.layer.transform = CATransform3DIdentity 
    } 
} 
+0

嘿檢查我的答案它的測試和非常好的工作 – Mayur

回答

4

注:使用animateWithDuration的一個動畫

這是正常的行爲...方法。如果你想在動畫期間進行用戶交互,你可以嘗試像我已經展示過的下圖。

只要你需要嘗試這樣的:

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    let rotationTransform = CATransform3DScale(CATransform3DIdentity, 0.4, 0.4, 0) 
    cell.layer.transform = rotationTransform 

    UIView.animateWithDuration(0.5, delay: 0.5, options: UIViewAnimationOptions.AllowUserInteraction, animations: {() -> Void in 
     cell.layer.transform = CATransform3DIdentity 
     }, completion: nil) 
} 

希望它會幫助你的。

+0

工作就像一個魅力! – Kalyan

-1

你可以添加一個透明的UIView(尺寸相同的小區)上述動畫視圖和一次觸摸和/或在動畫完成時,從除去視圖的代碼子視圖。

1

您在這裏觸及的主要內容是UIView動畫默認情況下在動畫正在進行時禁用動畫視圖上的接觸。您可以通過切換到+animateWithDuration:options:delay:animations:completion:方法並添加UIViewAnimationOptions價值AllowUserInteraction,這樣改變這種行爲:

UIView.animateWithDuration(0.5, delay:0, options:[.AllowUserInteraction], animations:{() -> Void in 
    cell.layer.transform = CATransform3DIdentity 
}, completion:nil)