iOS專案開發實戰——多個檢視的平移動畫與閉包函式的宣告與呼叫
在iOS動畫中,可以對不同的控制元件分別進行設定動畫效果,並且設定不同的時間延遲。並且要注意閉包函式的使用。下面我們來實現一下。
(1)在Main.storyboard中拖入三個不同顏色的View控制元件,放置在不同位置,並且繫結到程式碼中,如圖:
。
(3)然後在程式碼中實現如下:
import UIKit
class PositionViewController: UIViewController {
@IBOutlet weak var greenSquare: UIView!
@IBOutlet weak var redSquare: UIView!
@IBOutlet weak var blueSquare: UIView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewDidAppear(animated: Bool) {
//閉包函式的定義;
//注意呼叫動畫的方法中的animations,completion使用的都是閉包函式;可以直接在外面定義,裡面呼叫,這樣程式碼更加清晰;
func completeGreen(v:Bool){
println("Green Completion")
}
func completeRed(v:Bool){
println("Red Completion")
}
func completeBlue(v:Bool){
println("Blue Completion")
}
func animGreen(){
self.greenSquare.center.x = self.view.bounds.width - self.greenSquare.center.x
}
func animRed(){
self.redSquare.center.y = self.view.bounds.height - self.redSquare.center.y
}
func animBlue(){
self.blueSquare.center.y = self.view.bounds.height - self.blueSquare.center.y
self.blueSquare.center.x = self.view.bounds.width - self.blueSquare.center.x
}
//引數delay表示延遲,第一個參數列示動畫時間;
//注意呼叫閉包函式;
UIView.animateWithDuration(1, delay: 0, options: nil, animations: animGreen, completion: completeGreen)
UIView.animateWithDuration(1, delay: 0.5, options: nil, animations: animRed, completion: completeRed)
UIView.animateWithDuration(1, delay: 1, options: nil, animations: animBlue, completion: completeBlue)
/*
引數提示中:
()->Void:表示引數為空,返回值為Void,必須要實現這個閉包函式;
<#((Bool) -> Void)?##(Bool) -> Void#>:表示引數為Bool型別,返回值為Void,後面的?表示這個閉包函式可以為空;
*/
// UIView.animateWithDuration(<#duration: NSTimeInterval#>, delay: <#NSTimeInterval#>, options: <#UIViewAnimationOptions#>, animations: <#() -> Void##() -> Void#>, completion: <#((Bool) -> Void)?##(Bool) -> Void#>)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
(4)對三個不同的色塊設定了延遲,注意不要勾選“Use Auto Layout”.實現效果如下:
。
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- iOS專案開發實戰——檢視動畫效果iOS動畫
- iOS專案開發實戰——製作檢視的平移動畫以及解決移動異常問題iOS動畫
- iOS專案開發實戰——製作檢視的縮放動畫iOS動畫
- iOS專案開發實戰——製作檢視的旋轉動畫iOS動畫
- iOS專案開發實戰——實現檢視切換動畫iOS動畫
- iOS專案開發實戰——設定檢視的透明度改變動畫iOS動畫
- iOS專案開發實戰——UIView的子檢視和父檢視iOSUIView
- iOS專案開發實戰——Swift實現多個TableView的側滑與切換iOSSwiftView
- iOS專案開發實戰——配置自定義動畫iOS動畫
- iOS專案開發實戰——UILabel與取色器的使用iOSUI
- 回撥函式 與 函式閉包函式
- js函式 函式自呼叫 返回函式的函式 (閉包)JS函式
- JavaScript進階系列01,函式的宣告,函式引數,函式閉包JavaScript函式
- iOS專案開發實戰——UIImageView的使用與圖片顯示模式iOSUIView模式
- iOS專案開發實戰——製作View的顏色漸變動畫iOSView動畫
- 3. 匿名函式與閉包函式
- js閉包與封閉函式與其他知識點JS函式
- 宣告與函式、函式指標函式指標
- Python爬蟲開發與專案實戰--分散式程式Python爬蟲分散式
- Javascript的函式呼叫與thisJavaScript函式
- Kotlin 之高階函式與Lambda表示式與閉包Kotlin函式
- iOS開發-列表檢視的基本介紹與使用iOS
- iOS專案開發實戰——UILabel自適應較多的文字iOSUI
- javascript 的函式宣告與表示式對比JavaScript函式
- iOS開發專案實戰——Swift實現圖片輪播與瀏覽iOSSwift
- iOS專案開發實戰——storyboard設定介面技巧與注意事項iOS
- iOS專案開發實戰——自定義控制元件背景與顏色iOS控制元件
- python 關於 函式物件與閉包Python函式物件
- 13. 閉包函式與裝飾器函式
- 《JavaScript設計模式與開發實踐》基礎篇(2)—— 閉包和高階函式JavaScript設計模式函式
- ObjectC Hook函式的實現與實戰ObjectHook函式
- 管理多個專案的主要挑戰與應對方法
- 閉包函式(匿名函式)的理解函式
- iOS開發——專案實戰總結&UITableView效能優化與卡頓問題iOSUIView優化
- iOS開發·專職協議宣告的標頭檔案iOS協議
- 何時使用函式表示式與函式宣告函式
- 一個常見的閉包函式的分析函式
- Python爬蟲開發與專案實戰pdfPython爬蟲