国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

IOS swift中的動畫的實例詳解

2019-10-21 18:44:47
字體:
供稿:網(wǎng)友

IOS swift中的動畫的實例詳解

UIView的通用動畫

let view = UIView(frame: CGRectMake(10.0, 10.0, 100.0, 40.0))self.view.addSubview(view)view.backgroundColor = UIColor.lightGrayColor()// 位置改變var frame = view.frameUIView.animateWithDuration(0.6, delay: 2.0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {      () -> Void in      frame.origin.x = 200.0      view.frame = frame      }) {        (finished:Bool) -> Void in        UIView.animateWithDuration(0.6) {          () -> Void in          frame.origin.x = 10.0          view.frame = frame        }}

CABasicAnimation核心動畫

1、CABasicAnimation類只有三個屬性:

fromValue:開始值 toValue:結(jié)束值 Duration:動畫的時間 repeatCount:重復(fù)次數(shù)

2、通過animationWithKeyPath鍵值對的方式設(shè)置不同的動畫效果

transform.scale transform.scale.x transform.scale.y transform.rotation.z opacity margin zPosition backgroundColor cornerRadius borderWidth bounds contents contentsRect cornerRadius frame hidden mask masksToBounds opacity position shadowColor shadowOffset shadowOpacity shadowRadius
let view = UILabel(frame: CGRectMake((self.view.frame.size.width - 200.0) / 2, 10.0, 200.0, 40.0))self.view.addSubview(view)view.text = "縮放/淡入淡出"view.textAlignment = .Centerview.adjustsFontSizeToFitWidth = trueview.backgroundColor = UIColor.lightGrayColor()//let layer = view.layer// 開始動畫// 縮放let scaleAnimate = CABasicAnimation(keyPath: "transform.scale")scaleAnimate.fromValue = 1.0scaleAnimate.toValue = 1.5scaleAnimate.autoreverses = truescaleAnimate.repeatCount = MAXFLOATscaleAnimate.duration = 1.0// 淡入淡出let opaqueAnimate = CABasicAnimation(keyPath: "opacity")opaqueAnimate.fromValue = 0.1opaqueAnimate.toValue = 1opaqueAnimate.autoreverses = trueopaqueAnimate.repeatCount = MAXFLOATopaqueAnimate.duration = 1.0layer.addAnimation(scaleAnimate, forKey: "scaleAnimate")layer.addAnimation(opaqueAnimate, forKey: "opacityAnimate")
// 組合動畫let view3 = UILabel(frame: CGRectMake(10.0, (currentView.frame.origin.y + currentView.frame.size.height + 10.0), 120.0, 40.0))self.view.addSubview(view3)view3.text = "組合動畫"view3.textAlignment = .Centerview3.adjustsFontSizeToFitWidth = trueview3.backgroundColor = UIColor.lightGrayColor()//let layer3 = view3.layer// CAAnimationGroup組合動畫效果let rotate: CABasicAnimation = CABasicAnimation()rotate.keyPath = "tranform.rotation"rotate.toValue = M_PIlet scale: CABasicAnimation = CABasicAnimation()scale.keyPath = "transform.scale"scale.toValue = 0.0let move: CABasicAnimation = CABasicAnimation()move.keyPath = "transform.translation"move.toValue = NSValue(CGPoint: CGPoint(x: 217, y: 230))let animationGroup:CAAnimationGroup = CAAnimationGroup()animationGroup.animations = [rotate, scale, move]animationGroup.duration = 2.0animationGroup.fillMode = kCAFillModeForwardsanimationGroup.removedOnCompletion = falseanimationGroup.repeatCount = MAXFLOAT//layer3.addAnimation(animationGroup, forKey: nil)

CAKeyframeAnimation關(guān)鍵幀動畫

主要屬性:

keyPath : 要設(shè)置的屬性 path : 路徑 可用UIBezierPath(設(shè)置了path,將忽略values) duration : 動畫時長 repeatCount : 重復(fù)次數(shù) calculationMode : 動畫計算方式 values:每一個關(guān)鍵幀(設(shè)置了path,將忽略values) removedOnCompletion:執(zhí)行完之后不刪除動畫 fillMode:執(zhí)行完之后保存最新的狀態(tài) delegate:代理
let view = UILabel(frame: CGRectMake((self.view.frame.size.width - 200.0) / 2, 10.0, 200.0, 40.0))self.view.addSubview(view)view.text = "CAKeyframeAnimation動畫"view.backgroundColor = UIColor.lightGrayColor()//let layer = view.layer// 位移let keyAnimate = CAKeyframeAnimation(keyPath: "position")// 設(shè)定關(guān)鍵幀let value0 = NSValue(CGPoint: layer.position)let value1 = NSValue(CGPoint: CGPointMake(layer.position.x, layer.position.y + 200))let value2 = NSValue(CGPoint: CGPointMake(layer.position.x - 150, layer.position.y + 200))let value3 = NSValue(CGPoint: CGPointMake(layer.position.x - 150, layer.position.y))let value4 = NSValue(CGPoint: layer.position)// 速度曲線let tf0 = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)let tf1 = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)let tf2 = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn)let tf3 = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)keyAnimate.timingFunctions = [tf0, tf1, tf2, tf3]// 每段執(zhí)行的時間keyAnimate.keyTimes = [0.0, 0.5, 0.6, 0.7, 1]//keyAnimate.values = [value0, value1, value2, value3, value4]keyAnimate.autoreverses = falsekeyAnimate.repeatCount = 3keyAnimate.duration = 6.0//keyAnimate.delegate = self//layer.addAnimation(keyAnimate, forKey: "position")
// 代理方法override func animationDidStart(anim: CAAnimation) {    print("開始")}override func animationDidStop(anim: CAAnimation, finished flag: Bool) {    print("結(jié)束")}
let view3 = UILabel(frame: CGRectMake(10.0, (currentView.frame.origin.y + currentView.frame.size.height + 10.0), 60.0, 60.0))self.view.addSubview(view3)view3.text = "抖動"view3.backgroundColor = UIColor.lightGrayColor()//let layer3 = view3.layer// 抖動let animation3 = CAKeyframeAnimation()animation3.keyPath = "transform.rotation"// (-M_PI_4 /90.0 * 5)表示-5度 。let value31 = NSValue(CGPoint: CGPointMake(CGFloat(-M_PI_4 / 90.0 * 5.0), 0.0))let value32 = NSValue(CGPoint: CGPointMake(CGFloat(M_PI_4 / 90.0 * 5.0), 0.0))let value33 = NSValue(CGPoint: CGPointMake(CGFloat(-M_PI_4 / 90.0 * 5.0), 0.0))animation3.values = [value31, value32, value33];animation3.removedOnCompletion = falseanimation3.fillMode = kCAFillModeForwardsanimation3.duration = 0.2animation3.repeatCount = MAXFLOAT//layer3.addAnimation(animation3, forKey: nil)

 如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 手游| 荆州市| 桐柏县| 莆田市| 京山县| 乐昌市| 贵德县| 咸宁市| 特克斯县| 新兴县| 噶尔县| 门源| 德令哈市| 罗平县| 璧山县| 连城县| 乌苏市| 页游| 晋宁县| 桐乡市| 云浮市| 吉木乃县| 江孜县| 乳源| 容城县| 公主岭市| 天全县| 井陉县| 新巴尔虎右旗| 合水县| 丰宁| 藁城市| 安塞县| 阿克苏市| 云林县| 六安市| 无棣县| 宝丰县| 沙雅县| 新巴尔虎右旗| 华容县|