Spring
- 作用:開發(fā)中常用的動(dòng)畫效果及自定義轉(zhuǎn)場(chǎng)動(dòng)畫
演示
介紹
SpringView
最重要的一個(gè)類捕发,是一個(gè)繼承自UIView的控件,所有的動(dòng)畫屬性,都是圍繞著這個(gè)類的對(duì)象
demo跑起來(lái)有一個(gè)code按鈕,點(diǎn)擊這個(gè)按鈕會(huì)出現(xiàn)已經(jīng)設(shè)置的動(dòng)畫屬性及其api,自己可以自定義設(shè)置惹谐,其對(duì)應(yīng)的api這里就不贅述了(上面的gif圖片也可以看到)
demo里code按鈕點(diǎn)開顯示的layer對(duì)象是用SpringView創(chuàng)建的對(duì)象,不是我們平時(shí)說(shuō)的layer
animateNext(completion: () -> ())
驼卖,這是動(dòng)畫結(jié)束后可以執(zhí)行的任務(wù)的api關(guān)于這個(gè)控件響應(yīng)點(diǎn)擊事件的方式
1.因?yàn)槭抢^承自UIView豺鼻,所以不能像UIButton那樣添加點(diǎn)擊的響應(yīng)事件,可以為這個(gè)控件添加手勢(shì)款慨,用以響應(yīng)點(diǎn)擊事件
2.可以在這個(gè)控件上覆蓋一個(gè)UIButton儒飒,將它的backgroudcolor設(shè)置為clear color,為UIButton添加點(diǎn)擊事件(框架作者的demo是這么干的)
測(cè)試demo
- 自己在測(cè)試時(shí)檩奠,直接導(dǎo)入框架的類文件桩了,在控制器中引用時(shí),出現(xiàn)了bug埠戳,后來(lái)又用的Cocoapod加入的框架井誉,大家在使用或測(cè)試時(shí)可以避開這個(gè)坑(也可能是本人才疏學(xué)淺,沒處理好)
測(cè)試demo演示
測(cè)試代碼
import UIKit
import Spring
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
springV.center = view.center
view.addSubview(springV)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
//設(shè)置動(dòng)畫屬性
springV.animation = "shake"
springV.curve = "easeIn"
springV.duration = 1.0
//label.animate()
springV.animateToNext({ () -> () in
print("11")
})
}
//懶加載SpringView
lazy var springV: SpringView = {
let springV = SpringView(frame: CGRectMake(0, 0, 100, 100))
springV.layer.contents = UIImage(named: "appicon@40")?.CGImage
// springV.backgroundColor =
return springV
}()
}