一個Loading動畫

LoadingIndicator.gif

這種魔術般的效果是怎么做到的?用簡單的UIView動畫即可:

    /// 縮小
    private func scaleToSmall() {
        guard isAnimatedEnable else {
            return
        }
        isAnimating = true
        self.contentView.snp.updateConstraints { (make) in
            make.width.height.equalTo(self.dotRadius * 2)
        }
        UIView.animate(withDuration: animationDuration / 2, animations: {
            self.contentView.layoutIfNeeded()
            self.contentView.transform = CGAffineTransform(rotationAngle: CGFloat.pi)
        }) { (_) in
            self.isAnimating = false
            self.scaleToLarge()
            if self.isAnimatedEnable == false {
                self.prepareToAnimate()
            }
        }
    }
    
    /// 放大
    private func scaleToLarge() {
        guard isAnimatedEnable else {
            return
        }
        isAnimating = true
        self.contentView.snp.updateConstraints { (make) in
            make.width.height.equalTo(self.sideLength)
        }
        UIView.animate(withDuration: animationDuration / 2, animations: {
            self.contentView.layoutIfNeeded()
            self.contentView.transform = CGAffineTransform.identity
        }) { (_) in
            self.isAnimating = false
            self.scaleToSmall()
        }
    }

使用方法:

LoadingIndicator.share.show(inView: view)
LoadingIndicator.share.dismiss()

戳我看項目源碼:LoadingIndicator

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,828評論 25 709
  • 發(fā)現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,101評論 4 61
  • 今日獨膽5 雙膽56 關注356 五碼13569 六碼134569
    情敵貝多芬閱讀 120評論 0 0
  • 歲歲重陽節(jié),今年何有別? 黃花籠遠煙,不見雨中轍。
    A_master閱讀 314評論 1 7
  • 有些地方不盡完美,卻還會故地重游,鳳凰就是這樣的地方。我去過烏鎮(zhèn),去過西塘,去過芙蓉鎮(zhèn),卻只想念鳳凰。中國...
    啊咧君閱讀 862評論 2 3

友情鏈接更多精彩內容