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

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

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

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

先說下基本動畫部分

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

使用方法大致為:

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

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

#3. 設(shè)置動畫最終停留的位置

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

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

//設(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)建基本動畫
  CABasicAnimation *basicAnimation = [CABasicAnimation animation];
  
  //設(shè)置屬性
  basicAnimation.keyPath      = @"position";
  basicAnimation.duration     = 4.0f;
  basicAnimation.fromValue     = [NSValue valueWithCGPoint:showView.center];
  basicAnimation.toValue      = [NSValue valueWithCGPoint:CGPointMake(50, 300)];
  
  //設(shè)置動畫結(jié)束位置
  showView.center = CGPointMake(50, 300);
  
  //添加動畫到layer層
  [showView.layer addAnimation:basicAnimation forKey:nil];

接下來說下關(guān)鍵幀動畫

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

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

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

#3. 設(shè)置動畫最終停留的位置

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

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

//設(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)建關(guān)鍵幀動畫
  CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animation];
  
  //設(shè)置動畫屬性
  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)]];
  
  //設(shè)置動畫結(jié)束位置
  showView.center = CGPointMake(200, 200);
  
  //添加動畫到layer層
  [showView.layer addAnimation:keyFrameAnimation forKey:nil];

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

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

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

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

上代碼:

//設(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)建關(guān)鍵幀動畫
  CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animation];
  
  //設(shè)置動畫屬性
  keyFrameAnimation.keyPath       = @"position";
  keyFrameAnimation.duration       = 4.0f;
  
    //關(guān)鍵處, 在這里使用的緩動函數(shù)計算點(diǎn)路徑
  keyFrameAnimation.values = [YXEasing calculateFrameFromPoint:showView.center
                             toPoint:CGPointMake(50, 300)
                              func:BounceEaseOut
                           frameCount:4.0f * 30];
  
  //設(shè)置動畫結(jié)束位置
  showView.center = CGPointMake(50, 300);
  
  //添加動畫到layer層
  [showView.layer addAnimation:keyFrameAnimation forKey:nil];

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

相關(guān)文章

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

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

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

    淺談Unity中IOS Build Settings選項(xiàng)的作用

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

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

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

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

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

    iOS My97DatePicker日歷使用詳解

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

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

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

    IOS改變UISearchBar中搜索框的高度

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

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

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

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

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

    IOS中UIWebView、WKWebView之JS交互

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

最新評論

长乐市| 溧水县| 荃湾区| 琼中| 象州县| 东明县| 云安县| 贺兰县| 嘉祥县| 兴隆县| 峨眉山市| 高邮市| 望城县| 镇沅| 达拉特旗| 巴林左旗| 陕西省| 巩留县| 兴化市| 茂名市| 桃源县| 肥东县| 开封市| 密山市| 东乌珠穆沁旗| 固镇县| 格尔木市| 邳州市| 吴堡县| 贵阳市| 广州市| 桐城市| 河间市| 嘉禾县| 秭归县| 吴忠市| 陆川县| 同德县| 石城县| 张掖市| 丰顺县|