亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS swift中的動畫的實例詳解

2020-07-26 02:42:09
字體:
來源:轉載
供稿:網友

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:結束值 Duration:動畫的時間 repeatCount:重復次數

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

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關鍵幀動畫

主要屬性:

keyPath : 要設置的屬性 path : 路徑 可用UIBezierPath(設置了path,將忽略values) duration : 動畫時長 repeatCount : 重復次數 calculationMode : 動畫計算方式 values:每一個關鍵幀(設置了path,將忽略values) removedOnCompletion:執行完之后不刪除動畫 fillMode:執行完之后保存最新的狀態 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")// 設定關鍵幀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]// 每段執行的時間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("結束")}
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"http:// (-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)

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久亚洲精品视频| 国产精品久久视频| 91久热免费在线视频| 日韩激情视频在线| 久久九九国产精品怡红院| 97avcom| 欧美一级高清免费播放| 亚洲欧洲免费视频| 久久视频在线看| 欧美性在线视频| 精品久久久中文| 免费不卡欧美自拍视频| 精品中文字幕视频| 国产亚洲视频在线| 91精品国产一区| 国产日本欧美一区二区三区在线| 日韩国产精品一区| 久久不射电影网| 久久久久久一区二区三区| 亚洲图片欧美日产| 日韩美女视频免费在线观看| 亚洲色图国产精品| 国产精品一区二区三区久久| 亚洲free性xxxx护士hd| 91久久久久久久久久| 欧美第一页在线| 欧美在线视频免费观看| 亚洲一区二区在线| 久久香蕉国产线看观看网| 日韩高清av一区二区三区| 欧美综合激情网| 久久精品国产欧美亚洲人人爽| 中文字幕欧美国内| 国产精品男人爽免费视频1| 久久久久中文字幕2018| 精品国产依人香蕉在线精品| 久久97久久97精品免视看| 亚洲激情视频在线播放| 国产91免费观看| 国产一区二区三区在线观看视频| 主播福利视频一区| 国产亚洲精品美女| 4444欧美成人kkkk| 日本成人黄色片| 色偷偷av亚洲男人的天堂| 欧美裸体xxxx极品少妇软件| 亚洲人成五月天| 性色av一区二区三区免费| 日韩中文在线中文网三级| 精品国产91久久久久久| 日韩成人激情影院| 国产精品自产拍高潮在线观看| 91中文字幕一区| 日本午夜精品理论片a级appf发布| 精品动漫一区二区三区| 国内精品久久久久影院优| 在线播放国产一区中文字幕剧情欧美| 亚洲18私人小影院| 69av成年福利视频| 国产免费一区二区三区香蕉精| 国产精品va在线播放| 欧美专区在线视频| 亚洲欧美综合v| 国产女精品视频网站免费| 色综久久综合桃花网| 久久亚洲春色中文字幕| 久久亚洲精品一区| 国产亚洲精品成人av久久ww| 国产欧美精品日韩| 色婷婷成人综合| 亚洲成人激情视频| 成人网在线免费观看| 国产日本欧美在线观看| 成人免费xxxxx在线观看| 国产精自产拍久久久久久| 美女啪啪无遮挡免费久久网站| 国产精品视频男人的天堂| 国产精品成人免费电影| 美女扒开尿口让男人操亚洲视频网站| 热久久这里只有精品| 亚洲视频在线观看| 色综合久综合久久综合久鬼88| 亚洲综合日韩在线| 亚洲一区二区国产| 97人人爽人人喊人人模波多| 久久国产精品久久久久久| 国产午夜精品一区理论片飘花| 色青青草原桃花久久综合| 欧美www视频在线观看| 欧美一级黑人aaaaaaa做受| 欧美日韩一区二区免费视频| 亚洲free性xxxx护士hd| 欧美成人午夜免费视在线看片| 亚洲精品xxxx| 日韩av在线影院| 国产精品亚洲激情| 国产精品一区二区三区在线播放| 日本韩国欧美精品大片卡二| 国语对白做受69| 亚洲性生活视频在线观看| 亚洲女人天堂色在线7777| 夜夜狂射影院欧美极品| 91视频国产精品| 欧美性少妇18aaaa视频| 午夜精品99久久免费| 国产精品最新在线观看| 精品成人久久av| 欧美一级高清免费| 久久久91精品国产一区不卡| 国产丝袜视频一区| 欧美www视频在线观看| 欧美日韩亚洲精品一区二区三区| 欧美三级欧美成人高清www| 久久久久久97| 久久人人爽人人爽人人片亚洲| 亚洲色图五月天| 欧美限制级电影在线观看| 精品偷拍各种wc美女嘘嘘| 欧美丝袜美女中出在线| 国产精品亚发布| 92福利视频午夜1000合集在线观看| 成年无码av片在线| 欧美精品一区二区免费| 国产精品永久免费在线| 日韩高清欧美高清| 欧美日韩一区二区在线| 亚洲欧洲在线观看| www.99久久热国产日韩欧美.com| 日韩精品欧美国产精品忘忧草| 国产91精品网站| 日韩电影中文字幕| 色悠久久久久综合先锋影音下载| 亚洲精品资源美女情侣酒店| 欧美性生活大片免费观看网址| 精品视频在线导航| 亚洲人成在线观看网站高清| 91精品国产91久久久久久最新| 国产亚洲精品久久久久久| 俺也去精品视频在线观看| 亚洲最大成人网色| 91禁外国网站| 国产精品自拍网| 韩国欧美亚洲国产| 国产噜噜噜噜久久久久久久久| 91精品视频专区| 国产一区二区三区网站| 亚洲国产成人91精品| 久久精品99无色码中文字幕| 成人国产在线视频| 成人欧美一区二区三区黑人孕妇| 亚洲色图综合久久| 深夜福利国产精品| 91精品久久久久久久| www.欧美免费| 麻豆乱码国产一区二区三区| 91在线观看免费观看| 不用播放器成人网| 亚洲第一福利网| 日韩美女在线播放| 欧美国产日本在线| 精品无人区乱码1区2区3区在线| 欧美国产日产韩国视频| 51精品国产黑色丝袜高跟鞋| 精品久久香蕉国产线看观看gif|