iOS中CAKeyframeAnimation怎么使用

iOS
小億
141
2023-09-29 04:10:30

在iOS中,可以使用CAKeyframeAnimation實(shí)現(xiàn)關(guān)鍵幀動(dòng)畫(huà)。下面是使用CAKeyframeAnimation的步驟:

  1. 創(chuàng)建CAKeyframeAnimation對(duì)象并指定要?jiǎng)赢?huà)的屬性。例如,要對(duì)視圖的position屬性進(jìn)行動(dòng)畫(huà),可以創(chuàng)建一個(gè)CAKeyframeAnimation對(duì)象并將其賦給視圖的position屬性。
let animation = CAKeyframeAnimation(keyPath: "position")
  1. 設(shè)置關(guān)鍵幀。關(guān)鍵幀是動(dòng)畫(huà)過(guò)程中的關(guān)鍵點(diǎn),可以控制動(dòng)畫(huà)的路徑??梢酝ㄟ^(guò)設(shè)置values屬性來(lái)指定關(guān)鍵幀的位置。
let startPoint = CGPoint(x: 0, y: 0)
let endPoint = CGPoint(x: 100, y: 100)
animation.values = [NSValue(cgPoint: startPoint), NSValue(cgPoint: endPoint)]
  1. 設(shè)置動(dòng)畫(huà)的時(shí)間。可以使用duration屬性來(lái)指定動(dòng)畫(huà)的持續(xù)時(shí)間。
animation.duration = 1.0
  1. 設(shè)置動(dòng)畫(huà)的重復(fù)次數(shù)。
animation.repeatCount = Float.infinity
  1. 將動(dòng)畫(huà)添加到視圖的layer上。
view.layer.add(animation, forKey: "positionAnimation")

完整的示例代碼:

let animation = CAKeyframeAnimation(keyPath: "position")
let startPoint = CGPoint(x: 0, y: 0)
let endPoint = CGPoint(x: 100, y: 100)
animation.values = [NSValue(cgPoint: startPoint), NSValue(cgPoint: endPoint)]
animation.duration = 1.0
animation.repeatCount = Float.infinity
view.layer.add(animation, forKey: "positionAnimation")

這樣,視圖就會(huì)以指定的路徑進(jìn)行關(guān)鍵幀動(dòng)畫(huà)了。

0