欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Swift洗牌動畫效果的實現(xiàn)方法

 更新時間:2016年12月26日 09:47:09   作者:beatman_z  
這篇文章主要介紹了Swift洗牌動畫效果的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧

目標效果: 點擊動畫按鈕之后每張牌各自旋轉 散開到屏幕上半部分的任意位置之后回到初始位置 比較像LOL男刀的技能動畫 : )

1: 創(chuàng)建卡牌對象

for _ in 0...49 {
        let cardSet = UIImageView(image: UIImage(named: "cardBackLandscape"))
        self.view.addSubview(cardSet)
        cardSet.frame = self.landscapeCardBack.frame
        self.cardSetList.append(cardSet)
      }
      NSNotificationCenter.defaultCenter().postNotificationName("setCreated", object: nil)

把每個卡牌作為UIImageView創(chuàng)建出來,為了之后對這些牌進行操作 我用數(shù)組把他們持有住 在同一位置創(chuàng)建好了之后 使用本地通知發(fā)送setCreated消息 告訴這個頁面的觀察者card set已經(jīng)創(chuàng)建完畢 可以開始執(zhí)行第二步動畫

2: 首先需要把開始動畫的按鈕的用戶交互關閉,如果開著的話連續(xù)點擊每次都會創(chuàng)建50張牌,導致程序卡頓甚至掛掉

這里的delayTime是給線程加一個延遲時間 只是為了讓動畫不很生硬

每次循環(huán)給對應下標的card對象添加旋轉動畫,并且改變它的原點,我在用UIView動畫實現(xiàn)這套動畫之前想過給每張牌添加貝塞爾曲線,那樣的話確實可控性更高,但是由于時間關系我還是只用了UIViewAnimation,給card添加的旋轉動畫是使用POP動畫庫實現(xiàn)的,這里使用的是Basic動畫.這一步結束之后會把每張牌旋轉并散開到不同的位置,在delayTime結束并觸發(fā)本地通知發(fā)送shuffleFinished的時候,這個頁面的觀察者會執(zhí)行下一部動畫 也就是把每張牌還原到動畫起點

func shuffleTheSet() {
    self.shuffleButton.userInteractionEnabled = false
    let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC)))
    dispatch_after(delayTime, dispatch_get_main_queue()) {
      NSNotificationCenter.defaultCenter().postNotificationName("shuffleFinished", object: nil)
    }
    for count in 0...49 {
      UIView.animateWithDuration(0.3, animations: {
        let cardRotateAnimation = POPBasicAnimation(propertyNamed: kPOPLayerRotation)
        cardRotateAnimation.fromValue = 0
        cardRotateAnimation.toValue = CGFloat(M_PI * 2.0)
        cardRotateAnimation.duration = 1
        //        cardRotateAnimation.duration = Double(count>5 ? count/2 : count/10)
        cardRotateAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
        self.cardSetList[count].layer.pop_addAnimation(cardRotateAnimation, forKey: "cardRotation")
        self.cardSetList[count].frame.origin = CGPointMake(CGFloat(arc4random()) % (250 - 0 + 1) + 0, CGFloat(arc4random()) % (300 - 74 + 1) + 74)
        self.view.layoutIfNeeded()
        self.landscapeCardBack.removeFromSuperview()
      })
    }
  }

3: 把每張牌的還原到初始位置,并把button的title設置為切牌狀態(tài).

for count in 0...49 {
      UIView.animateWithDuration(0.3, animations: {
        self.cardSetList[count].center = self.landscapeCardBack.center
      })
      self.view.layoutIfNeeded()
    }
    self.shuffleButton.userInteractionEnabled = true
    self.shuffleButton.setTitle("Cut Card", forState: .Normal)

牌洗完之后的需求是切牌,由于時間原因下周繼續(xù)更新后續(xù)動畫效果…

以上所述是小編給大家介紹的Swift洗牌動畫效果的實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • Spring Security注冊過濾器注意事項詳解

    Spring Security注冊過濾器注意事項詳解

    前兩天和小伙伴聊了 Spring Security+JWT 實現(xiàn)無狀態(tài)登錄,然后有小伙伴反饋了一個問題,感覺這是一個我們平時寫代碼容易忽略的問題,所以本文給大家介紹了Spring Security注冊過濾器注意事項,需要的朋友可以參考下
    2024-06-06
  • SpringBoot項目讀取外置logback配置文件的問題及解決

    SpringBoot項目讀取外置logback配置文件的問題及解決

    SpringBoot項目讀取外置logback配置文件的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Mybatis逆向工程時失敗問題及解決

    Mybatis逆向工程時失敗問題及解決

    這篇文章主要介紹了Mybatis逆向工程時失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java處理數(shù)據(jù)庫不支持的emoji表情符問題解決

    java處理數(shù)據(jù)庫不支持的emoji表情符問題解決

    這篇文章主要介紹了java處理數(shù)據(jù)庫不支持的emoji表情符問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Spring注解與P/C命名空間超詳細解析

    Spring注解與P/C命名空間超詳細解析

    Spring注解方式減少了配置文件內容,更加便于管理,并且使用注解可以大大提高了開發(fā)效率!注解本身是沒有功能的,和xml一樣,注解和xml都是一種元數(shù)據(jù),元數(shù)據(jù)即解釋數(shù)據(jù)的數(shù)據(jù),也就是所謂的配置
    2022-11-11
  • SpringBoot源碼剖析之屬性文件加載原理

    SpringBoot源碼剖析之屬性文件加載原理

    這篇文章主要給大家介紹了關于SpringBoot源碼剖析之屬性文件加載原理的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-02-02
  • 詳解如何使用maven生成可以執(zhí)行的jar

    詳解如何使用maven生成可以執(zhí)行的jar

    這篇文章主要介紹了詳解如何使用maven生成可以執(zhí)行的jar,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • java常用工具類 Reflect反射工具類、String字符串工具類

    java常用工具類 Reflect反射工具類、String字符串工具類

    這篇文章主要為大家詳細介紹了java常用工具類,包括Reflect反射工具類、String字符串工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 輕松掌握Java適配器模式

    輕松掌握Java適配器模式

    這篇文章主要幫助大家輕松掌握Java適配器模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • webuploader在springMVC+jquery+Java開發(fā)環(huán)境下的大文件分片上傳的實例代碼

    webuploader在springMVC+jquery+Java開發(fā)環(huán)境下的大文件分片上傳的實例代碼

    這篇文章主要介紹了webuploader在springMVC+jquery+Java開發(fā)環(huán)境下的大文件分片上傳的實例代碼,需要的朋友可以參考下
    2017-04-04

最新評論