2016-07-15 55 views
0

好的,我試圖在滾動視圖滾動時逐步觸發動畫。爲此,我已將此鏈接轉換爲swift - http://www.oliverfoggin.com/controlling-animations-with-a-uiscrollview/如何通過PERCENTAGE在swift中觸發動畫?

給我滾動視圖的百分比偏移量x。這非常棒。

問題是我是相當新的迅速,不知道如何將這回到我現有的動畫這是一個變換/移動,而不是改變顏色。

這裏是我的動畫這裏 -

self.borderlines.transform = CATransform3DMakeScale(CGFloat(0.01), CGFloat(1.0), 1) 
self.activeBorder.layer.opacity = 1 

CATransaction.begin() 
self.activeBorder.layer.transform = CATransform3DMakeScale(CGFloat(0.03), CGFloat(1.0), 1) 
let anim2 = CABasicAnimation(keyPath: "transform") 
let fromTransform = CATransform3DMakeScale(CGFloat(0.01), CGFloat(1.0), 1) 
let toTransform = CATransform3DMakeScale(CGFloat(1.0), CGFloat(1.0), 1) 
anim2.fromValue = NSValue(CATransform3D: fromTransform) 
anim2.toValue = NSValue(CATransform3D: toTransform) 
anim2.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut) 
anim2.fillMode = kCAFillModeForwards 
anim2.removedOnCompletion = false 
self.activeBorder.layer.addAnimation(anim2, forKey: "_activeBorder") 

CATransaction.commit() 

然後我也有另一種移動動畫。因爲這些被稱爲觸摸,所以1靜態事件。

在教程中,我可以看到重新計算/觸發他的動畫每個滾動然後改變bg顏色的百分比。我不知道如何將它應用到另一種類型的動畫 - 他提到了關鍵幀,我不知道這些是什麼。

我該如何達到這個效果?我需要在這裏更改什麼?

回答

1

通過將其圖層的speed設置爲零並操作其作爲對滾動的響應的「timeOffset」來查看「凍結」您的動畫。

+0

下載示例在這裏:https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch04p160frozenAnimation/FrozenAnimationTest/ViewController.swift這是一個滑塊,而不是滾動視圖,但原則是相同。 – matt