iOS實現(xiàn)音樂播放器圖片旋轉
本文實例為大家分享了iOS實現(xiàn)音樂播放器圖片旋轉的具體代碼,供大家參考,具體內(nèi)容如下
通過給繼承與 UIImageView 的類 CXGImageView 添加 CABasicAnimation 轉動動畫,實現(xiàn)播放器圖片轉動效果.
主要提供三個方法: startRotating, stopRotating,resumeRotate
startRotating
/// 開始動畫
func startRotating() {
let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
rotateAnimation.isRemovedOnCompletion = false // 避免點擊 Home 鍵返回,動畫停止
rotateAnimation.fromValue = 0.0
rotateAnimation.toValue = Double.pi * 2
rotateAnimation.duration = 20
rotateAnimation.repeatCount = MAXFLOAT
self.layer.add(rotateAnimation, forKey: nil)
isRotating = true
}
stopRotating
/// 停止動畫
func stopRotating() {
if !isRotating {
return
}
let pausedTime = self.layer.convertTime(CACurrentMediaTime(), from: nil)
// 讓CALayer的時間停止走動
self.layer.speed = 0
// 讓CALayer的時間停留在pausedTime這個時刻
self.layer.timeOffset = pausedTime
isRotating = false
}
resumeRotate
/// 繼續(xù)動畫
func resumeRotate() {
if isRotating {
return
}
if self.layer.timeOffset == 0 {
startRotating()
return
}
let pausedTime = self.layer.timeOffset
// 1. 讓CALayer的時間繼續(xù)行走
self.layer.speed = 1.0
// 2. 取消上次記錄的停留時刻
self.layer.timeOffset = 0.01
// 3. 取消上次設置的時間
self.layer.beginTime = 0.0
// 4. 計算暫停的時間(這里也可以用CACurrentMediaTime()-pausedTime)
let timeWhenpause = self.layer.convertTime(CACurrentMediaTime(), from: nil) - pausedTime
// 5. 設置相對于父坐標系的開始時間(往后退timeSincePause)
self.layer.beginTime = timeWhenpause
isRotating = true
}
注意: 使用中發(fā)現(xiàn),當點下 Home 鍵再次返回應用時,圖片停止轉動,需要將動畫 isRemovedOnCompletion 置成 false.
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
iOS應用開發(fā)中使用NSLocale類實現(xiàn)對象信息的本地化
這篇文章主要介紹了iOS應用開發(fā)中使用NSLocale類實現(xiàn)對象信息的本地化的方法,能夠將時間和貨幣等格式化為與系統(tǒng)本地設置相同的偏好,需要的朋友可以參考下2016-05-05
使用SDLocalize實現(xiàn)高效完成iOS多語言工作
這篇文章主要介紹了使用SDLocalize實現(xiàn)高效完成iOS多語言工作的相關資料,需要的朋友可以參考下2022-10-10
iOS AVPlayer切換播放源實現(xiàn)連續(xù)播放和全屏切換的方法
這篇文章主要給大家介紹了關于iOS中AVPlayer切換播放源實現(xiàn)連續(xù)播放和全屏切換的方法,文中給出了詳細的示例代碼供大家參考學習,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05
iOS NSURLSessionDownloadTask設置代理文件下載的示例
本篇文章主要介紹了iOS NSURLSessionDownloadTask設置代理文件下載的示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
iOS中containsString和rangeOfString的區(qū)別小結
這篇文章主要給大家總結介紹了關于iOS中containsString和rangeOfString的一些區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-01-01
iOS自定義UIBarButtonItem的target和action示例代碼
這篇文章主要給大家介紹了關于iOS自定義UIBarButtonItem的target和action的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-02-02

