原创 iOS動畫:UIKit關鍵幀動畫(2)

對於一些連續的動畫,例如下面這種平移效果: 你可能會想到用前面學到的UIView.animate嵌套使用,做完後你會發現,你的代碼嵌套了很多層,閱讀和修改都不方便,這裏有更好的實現方法,那就是關鍵幀動畫 let orig

原创 iOS動畫:UIViewPropertyAnimator動畫之ViewController Present過渡(17)

靜態ViewController過渡動畫 首先實現一個present的自定義動畫。 創建PresentTransition,實現UIViewControllerAnimatedTransitioning協議: import UIK

原创 iOS動畫:多個視圖的3D動畫(19)

通過這章,你將實現如下的相冊效果: 在viewDidApear中添加卡片: for image in images { image.layer.anchorPoint.y = 0.0 im

原创 iOS動畫:UIImageView幀動畫(完結)

這是iOS動畫的最後一章,比較簡單,我們來創建一隻企鵝移動的動畫 1.設置幀動畫 var walkFrames = [ UIImage(named: "walk01.png")!, UIImage(named:

原创 iOS動畫:粒子發射器(20)

我們來實現這種下雪的粒子效果 要創建粒子發射器的動畫,需要用到一個新的layer:CAEmitterLayer 在viewDidLoad中創建emitter對象 let rect = CGRect(x: 0.0, y: 10

原创 iOS動畫:UIViewPropertyAnimator動畫之交互(16)

UIViewPropertyAnimator對象有三個屬性: isRunning:只讀屬性,表明動畫是否處於運動狀態,默認值爲false,當調用startAnimation()時變爲true,如果動畫暫停(paused)、停止(st

原创 iOS動畫:3D動畫(18)

根據圖示創建動畫,當點擊菜單按鈕時,需要顯示左側菜單欄 效果看起來就像一個3D動畫。現在我們來實現這種效果。 打開工程中的ContainerViewController.swift,創建3D變換函數: func menuTr

原创 iOS動畫:UIViewPropertyAnimator動畫之貝塞爾曲線(15)

使用內置的curves動畫 前面我們一直使用的系統內置的一些curves效果,比如:linear, ease in, ease out, ease in out。 打開LockScreenViewController.swift添加如

原创 iOS動畫:UIViewPropertyAnimator動畫(14)

UIViewPropertyAnimator是在iOS10引入的,它解決了能夠創建易於交互,可中斷和/或可逆的視圖動畫的需求。 現在有這樣一個場景LockScreenViewController.swift,讓中間tableview放

原创 iOS動畫:ViewController過渡動畫之帶交互的UINavigationController轉場動畫(13)

和前一章類似,交互式轉場動畫僅僅是代理方法的不同。通過手勢滑動設置動畫的進度。 我們來創建一個動畫構造器,需要用到蘋果內置的動畫構造類UIPercentDrivenInteractiveTransition(這是一個類,不是協議,繼承

原创 iOS動畫:ViewController過渡動畫之Presentation Controller和Orientation動畫(11)

Presentation Controller 我們來改變系統自帶的present動畫,主要用到UIViewControllerTransitioningDelegate的代理方法animationController(forPres

原创 iOS動畫:ViewController過渡動畫之UINavigationController轉場動畫(12)

和前一章類似,僅僅是代理方法的不同。 主要用到UINavigationControllerDelegate的代理方法navigationController(_ navigationController: UINavigationCo

原创 iOS動畫:複製圖層(10)

語音輸入時,有沒有考慮過下面兩種波浪形動畫是怎麼生成的呢? 沒錯,它就是我們今天需要了解的,圖層複製動畫CAReplicatorLayer。 首先我們先來看一個例子。 1.將CALayer複製多次添加到CAReplicatorLay

原创 iOS動畫:Stroke和Path動畫(9)

利用stroke和Path動畫製作下拉刷新動畫。 首先創建一個虛線圓。 let ovalShapeLayer = CAShapeLayer() ovalShapeLayer.strokeColor = UIColor.wh

原创 iOS動畫:Layer關鍵幀動畫和結構體屬性(7)

關鍵幀動畫 layer上的關鍵幀動畫和UIView上的關鍵幀動畫略有不同,UIView關鍵幀動畫是將一些獨立的簡單動畫結合起來,它可以爲不同的視圖和屬性設置動畫,動畫可以重疊和間斷。 而CAKeyframeAnimation是爲單個屬