NSTimer
每隔一定時間執行某個函數
//創建定時器
//參數1.定時時間
//參數2.調用方法的對象
//參數3.定時時間到了自動調用的方法
//參數4.nil
//參數5.是否重復
NSTimer.scheduledTimerWithTimeInterval(0.3, target: self, selector: #selector(timmer), userInfo: nil, repeats: true)
實例:使用NSTimer實現幀動畫
import UIKit
class ViewController: UIViewController {
var imageview = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
backImage()
creatUI()
//創建定時器
//參數1.定時時間
//參數2.調用方法的對象
//參數3.定時時間到了自動調用的方法
//參數4.nil
//參數5.是否重復
NSTimer.scheduledTimerWithTimeInterval(0.3, target: self, selector: #selector(timmer), userInfo: nil, repeats: true)
}
//MARK:定時器到時會調用的方法
func timmer() {
//改變圖片的位置
//1.先拿到圖片原來的位置
let frame = imageview.frame
imageview.frame = CGRectMake(frame.origin.x+10,frame.origin.y,121,96)
if frame.origin.x>self.view.bounds.width {
imageview.frame.origin.x = 0
}
}
//MARK:創建界面
//背景圖片
func backImage() {
let imageview1 = UIImageView.init(image: UIImage.init(named: "back2.jpg"))
imageview1.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
self.view.addSubview(imageview1)
}
//搭建頁面
func creatUI() {
imageview = UIImageView.init(image: UIImage.init(named: "DOVE 1"))
imageview.frame = CGRectMake(30,300,121,96)
self.view.addSubview(imageview)
//設置動畫數組
var imageViewarr = [UIImage]()
for i in 1...18{
let image1 = UIImage.init(named: "DOVE \(i)")
imageViewarr.append(image1!)
}
imageview.animationImages = imageViewarr
imageview.animationDuration = 1
imageview.animationRepeatCount = 0
imageview.startAnimating()
}
}