最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS 基本動畫、關鍵幀動畫、利用緩動函數(shù)實現(xiàn)物理動畫效果

 更新時間:2016年10月30日 10:25:22   投稿:lqh  
這篇文章主要介紹了iOS 基本動畫、關鍵幀動畫、利用緩動函數(shù)實現(xiàn)物理動畫效果的相關資料,需要的朋友可以參考下

iOS基本動畫/關鍵幀動畫/利用緩動函數(shù)實現(xiàn)物理動畫效果

先說下基本動畫部分

基本動畫部分比較簡單, 但能實現(xiàn)的動畫效果也很局限

使用方法大致為:

#1. 創(chuàng)建原始UI或者畫面

#2. 創(chuàng)建CABasicAnimation實例, 并設置keypart/duration/fromValue/toValue

#3. 設置動畫最終停留的位置

#4. 將配置好的動畫添加到layer層中

舉個例子, 比如實現(xiàn)一個圓形從上往下移動, 上代碼:

//設置原始畫面
  UIView *showView        = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
  showView.layer.masksToBounds  = YES;
  showView.layer.cornerRadius  = 50.f;
  showView.layer.backgroundColor = [UIColor redColor].CGColor;
  [self.view addSubview:showView];
  
  //創(chuàng)建基本動畫
  CABasicAnimation *basicAnimation = [CABasicAnimation animation];
  
  //設置屬性
  basicAnimation.keyPath      = @"position";
  basicAnimation.duration     = 4.0f;
  basicAnimation.fromValue     = [NSValue valueWithCGPoint:showView.center];
  basicAnimation.toValue      = [NSValue valueWithCGPoint:CGPointMake(50, 300)];
  
  //設置動畫結束位置
  showView.center = CGPointMake(50, 300);
  
  //添加動畫到layer層
  [showView.layer addAnimation:basicAnimation forKey:nil];

接下來說下關鍵幀動畫

其實跟基本動畫差不多, 只是能設置多個動畫路徑  使用方法也類似, 大致為

#1. 創(chuàng)建原始UI或者畫面

#2. 創(chuàng)建CAKeyframeAnimation實例, 并設置keypart/duration/values 相比基本動畫只能設置開始和結束點, 關鍵幀動畫能添加多個動畫路徑點

#3. 設置動畫最終停留的位置

#4. 將配置好的動畫添加到layer層中

舉個例子, 紅色圓形左右晃動往下墜落 上代碼:

//設置原始畫面
  UIView *showView        = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
  showView.layer.masksToBounds  = YES;
  showView.layer.cornerRadius  = 50.f;
  showView.layer.backgroundColor = [UIColor redColor].CGColor;
  
  [self.view addSubview:showView];
  
  //創(chuàng)建關鍵幀動畫
  CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animation];
  
  //設置動畫屬性
  keyFrameAnimation.keyPath       = @"position";
  keyFrameAnimation.duration       = 4.0f;
  
  keyFrameAnimation.values = @[[NSValue valueWithCGPoint:showView.center],
                 [NSValue valueWithCGPoint:CGPointMake(100, 100)],
                 [NSValue valueWithCGPoint:CGPointMake(50, 150)],
                 [NSValue valueWithCGPoint:CGPointMake(200, 200)]];
  
  //設置動畫結束位置
  showView.center = CGPointMake(200, 200);
  
  //添加動畫到layer層
  [showView.layer addAnimation:keyFrameAnimation forKey:nil];

最后是利用緩動函數(shù)配合關鍵幀動畫實現(xiàn)比較復雜的物理性動畫

先說說什么是緩動函數(shù), 就是有高人寫了一個庫可以計算出模擬物理性動畫(比如彈簧效果)所要的路徑

Github地址: https://github.com/YouXianMing/EasingAnimation

具體有哪些動畫效果可看庫中的緩動函數(shù)查詢表, 簡單舉個小球落地的效果

上代碼:

//設置原始畫面
  UIView *showView        = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
  showView.layer.masksToBounds  = YES;
  showView.layer.cornerRadius  = 50.f;
  showView.layer.backgroundColor = [UIColor redColor].CGColor;
  
  [self.view addSubview:showView];
  
  //創(chuàng)建關鍵幀動畫
  CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animation];
  
  //設置動畫屬性
  keyFrameAnimation.keyPath       = @"position";
  keyFrameAnimation.duration       = 4.0f;
  
    //關鍵處, 在這里使用的緩動函數(shù)計算點路徑
  keyFrameAnimation.values = [YXEasing calculateFrameFromPoint:showView.center
                             toPoint:CGPointMake(50, 300)
                              func:BounceEaseOut
                           frameCount:4.0f * 30];
  
  //設置動畫結束位置
  showView.center = CGPointMake(50, 300);
  
  //添加動畫到layer層
  [showView.layer addAnimation:keyFrameAnimation forKey:nil];

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • iOS實現(xiàn)聊天輸入框功能

    iOS實現(xiàn)聊天輸入框功能

    大家都經(jīng)常使用微信聊天功能,在沒事的時候就會想微信聊天輸入框的實現(xiàn)過程,很無聊吧。今天小編抽空給大家分享iOS實現(xiàn)聊天輸入框功能,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-02-02
  • 淺談Unity中IOS Build Settings選項的作用

    淺談Unity中IOS Build Settings選項的作用

    下面小編就為大家分享一篇淺談Unity中IOS Build Settings選項的作用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • IOS 解決推送本地國際化 loc-key 本地化失敗的問題

    IOS 解決推送本地國際化 loc-key 本地化失敗的問題

    本文主要介紹IOS 推送國際化問題,在開發(fā) IOS 項目過程中對軟件的國際化有的項目需求是需要的,這里給大家一個示例,有需要的小伙伴可以參考下
    2016-07-07
  • 提高iOS開發(fā)效率的小技巧與思路

    提高iOS開發(fā)效率的小技巧與思路

    很多人就會問學習iOS難不難啊?需要掌握哪些技能呢?有哪些技巧和方法呢?下面本文詳細給大家闡述開發(fā)技巧與思路。
    2016-07-07
  • iOS My97DatePicker日歷使用詳解

    iOS My97DatePicker日歷使用詳解

    這篇文章主要為大家詳細介紹了iOS My97DatePicker日歷的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • iOS實現(xiàn)簡易的導航欄顏色漸變實例代碼

    iOS實現(xiàn)簡易的導航欄顏色漸變實例代碼

    很多APP 都有導航欄顏色漸變的效果,下面這篇文章主要給大家介紹了關于iOS如何實現(xiàn)簡易的導航欄顏色漸變效果的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-10-10
  • IOS改變UISearchBar中搜索框的高度

    IOS改變UISearchBar中搜索框的高度

    這篇文章主要介紹了IOS改變UISearchBar中搜索框的高度的相關資料,需要的朋友可以參考下
    2016-01-01
  • iOS和JS交互教程之WKWebView-協(xié)議攔截詳解

    iOS和JS交互教程之WKWebView-協(xié)議攔截詳解

    這篇文章主要給大家介紹了關于iOS和JS交互教程之WKWebView-協(xié)議攔截的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • IOS內(nèi)存泄漏檢查方法及重寫MLeakFinder

    IOS內(nèi)存泄漏檢查方法及重寫MLeakFinder

    這篇文章主要介紹了IOS內(nèi)存泄漏檢查方法及如何重寫MLeakFinder,幫助ios開發(fā)者維護自身程序,感興趣的朋友可以了解下
    2021-04-04
  • IOS中UIWebView、WKWebView之JS交互

    IOS中UIWebView、WKWebView之JS交互

    本篇文章主要介紹了IOS中UIWebView、WKWebView之JS交互,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論

丰都县| 安泽县| 乌苏市| 黔西县| 酒泉市| 徐州市| 丹凤县| 丰宁| 礼泉县| 大田县| 香格里拉县| 西乌珠穆沁旗| 留坝县| 安义县| 墨脱县| 盘山县| 天台县| 罗山县| 海南省| 中江县| 河源市| 龙海市| 东山县| 福鼎市| 海林市| 兰西县| 迁安市| 镇康县| 沙坪坝区| 枝江市| 孝昌县| 榆树市| 洪泽县| 德令哈市| 山丹县| 龙山县| 大庆市| 略阳县| 台前县| 汉沽区| 三亚市|