• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • iOS動畫編程-View動畫[ 4 ]高級View Animations

    View組合動畫

    前幾節中我們已經學習了基本的View動畫,其實我們已經可以通過這些技術的組合實現非常酷炫的效果了,這節我們不會涉及新的API,一起來學習一下View動畫的組合

    背景圖片的漸變效果

    圖片描述
    背景圖片的漸變效果在很多應用中都會遇到,其實利用前幾節學習到的基本View動畫就可以做到
    我們現在希望在這兩個界面間進行切換
    圖片描述
    由于我們希望能夠柔和地過渡到第二個圖片,如果我們直接替換圖片的話會顯得非常突然。所以我們采用先添加一個圖層,逐漸改變透明度,最終替換圖片再移除之前的圖層的方法,逐漸改變界面背景

    這里我們使用UIView.animateWithDuration 方法實現切換圖片的方法
    其中的Effects指雪花的效果

        func fadeImageView(imageView:UIImageView,toImage:UIImage,showEffects:Bool){
            let newImageView = UIImageView(image: toImage)
            //新建一個圖層
            newImageView.frame = view.frame
            newImageView.alpha = 0.0
            
            UIView.animateWithDuration(0.33, animations: { () -> Void in
            //分別改變透明度
                newImageView.alpha=1.0
                self.snowView.alpha = showEffects ? 1.0 : 0.0
                //添加圖層above于原圖片
                self.view.insertSubview(newImageView, aboveSubview: imageView)
                }) { _ -> Void in
                //完成后替換圖片并移除圖層
                imageView.image = newImageView.image
                newImageView.removeFromSuperview()
            }
        }

    隨后我們在改變的背景的方法中調用上面的動畫

        func changeFlightDataAnimatedTo(data:FlightData){
            fadeImageView(bgImageView, toImage: UIImage(named: data.weatherImageName)!, showEffects: data.showWeatherEffects)
            
            delay(seconds: 3.0) {
                self.changeFlightDataAnimatedTo(data.isTakingOff ? parisToRome : londonToParis)
            }
        }

    Cube transitions

    這里介紹一種常用的文字改變動畫
    文字的變化就如同將文字寫在立方體的兩個面上,并轉動立方體
    圖片描述
    這不是一種真正的3D效果,不過也是練習基礎View動畫的好機會
    你的動畫方法將有一個參數用來指定方向
    首先我們定義一個枚舉來表示轉動方向

    enum AnimationDirection: Int { case Positive = 1
    case Negative = -1
    }

    下面我們來寫一下這個動畫函數,其參數如下

    1. label: 你想要動畫改變的Label.

    2. text: 接下來想顯示的文字.

    3. direction: 轉動方向.
      首先來做一個原Label除文字外的拷貝

    func cubeTransition(label label: UILabel, text: String, direction: AnimationDirection) {
    let auxLabel = UILabel(frame: label.frame) 
    auxLabel.text = text
    auxLabel.font = label.font 
    auxLabel.textAlignment = label.textAlignment 
    auxLabel.textColor = label.textColor auxLabel.backgroundColor = label.backgroundColor
    }

    隨后我們來計算垂直方向上的補償,并將Label變形

    let auxLabelOffset = CGFloat(direction.rawValue) * label.frame.size.height/2.0
    //同時進行兩個變形動畫
    auxLabel.transform = CGAffineTransformConcat( CGAffineTransformMakeScale(1.0, 0.1), CGAffineTransformMakeTranslation(0.0, auxLabelOffset))
    
    label.superview!.addSubview(auxLabel)
    UIView.animateWithDuration(0.5, delay: 0.0, options: .CurveEaseOut, animations: {
    auxLabel.transform = CGAffineTransformIdentity label.transform = CGAffineTransformConcat(
    CGAffineTransformMakeScale(1.0, 0.1),
    CGAffineTransformMakeTranslation(0.0, -auxLabelOffset)) }, completion: {_ in
    label.text = auxLabel.text
    label.transform = CGAffineTransformIdentity
    auxLabel.removeFromSuperview() })

    未完

    版權聲明:本文為weixin_34228617原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_34228617/article/details/89501101

    智能推薦

    Android學習(16)Animations_動畫

    Android學習(16)Animations_動畫 什么是Animations: Animations提供了一系列的動畫效果,這些效果可以作用于大多數的控件之上 Animations分為兩大類: Tweened Animations:該類提供了旋轉、移動、縮放、淡入淡出的動畫效果 Frame-by-Frame Animations:該類可以創建一個Drawable序列,這些Drawable中的圖...

    Angular練習之animations動畫三

    返回目錄 前言 文章基于angular的練手項目。文章目錄 上一篇文章《Angular練習之animations動畫二》中練習了入場和出場動畫、 Keyframes實現串聯動畫、Group實現并行動畫。今天練習動畫回調函數、query選擇器、路由中使用動畫。 開始練習 回調函數 回調用法也是很簡單,如下: query 用法和css選擇器大致相同,通過query便可以實現不同元素實現不同的動畫效果。...

    【Angular】angular-animations 動畫 BrowserAnimationsModule 詳解

    為了弄懂angular的動畫自己也是花了一番功夫,不客觀的說,angular的動畫寫起來是比較復雜的,但又必須掌握。 下面是我結合官方文檔的資料,自己通過實踐寫出來的一篇博客,希望可以幫到有需求的小伙伴,當然,如果文章有地方寫的錯誤,歡迎指正。 好了,廢話不多說,開始正文吧。 1:angular動畫的使用需要先引入一些與動畫有關的函數。 組件里引用:(:暫時先在組件里寫動畫相關的代碼,文末會把它單...

    Angular練習之animations動畫二

    返回目錄 回顧 文章基于angular的練手項目。文章目錄 前一篇文章《Angular練習之animations動畫》介紹了在angular中使用動畫的基本方法。 引入動畫模塊>創建動畫對象>在動畫載體上使用。我覺得其核心的內容在創建動畫對象上,今天我們就來練習創建不同的動畫對象trigger 開始練習 創建例子2 布局 ts 寫動畫效果,只定義狀態。 如下只寫兩個狀態看看效果。 添加...

    material—animations簡單操作activity過渡動畫

    Material-Animations gihub下載地址:https://github.com/lgvalle/Material-Animations 總體分四部分,簡單的過渡動畫,分享元素的過渡動畫,通過Transition實現的view動畫,ReveaAimation四種,接下來都以此介紹一下。 簡單過渡動畫 簡單的過渡動畫分三種吧,Slide,Fade,Explode,滑動,漸變,爆炸三種...

    猜你喜歡

    翻譯:iOS視圖控制器編程指南(十)——自定義過渡動畫(Customizing the Transition Animations)

    過渡動畫提供應用界面改變的視覺反饋。UIKit提供一組標準過渡樣式,用于present視圖控制器時使用,你可以自定義過渡補充標準過渡。 過渡動畫序列 過渡動畫互換視圖控制器的內容。有兩種類型的過渡:present和dismiss。present過渡會在應用視圖層級結構中添加一個新的視圖控制器,而dismiss過渡會從層級結構中刪除一個或多個視圖控制器。 過渡動畫的實現需要很多對象。UIKit提供所...

    View Animation——視圖動畫

    This example shows how to use the view.animate() method to run one or more animations. 這個例子用來展示如何使用“view.animate()”方法運行一個或多個動畫。 代碼:...

    android View動畫

    android View動畫 本文不涉及屬性動畫,只涉及視圖改變動畫。包括透明度改變動畫,平移動畫,旋轉動畫,縮放動畫。動畫效果的定義可以采用XML定義,也可以代碼中編碼定義,下面描述了4中動畫類型 動畫的類型 XML定義動畫使用的配置節點 編碼定義動畫使用的類 漸變透明度改變動畫 AlphaAnimation 漸變尺寸縮放動畫效果 ScaleAnimation 視圖位置移動動畫效果 TransL...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    精品国产乱码久久久久久蜜桃不卡