插入两张图片 1和2,在故事版中拖入两个image view 分别绑定这两张图片,按住control拖入viewcontroller中选择IBOutlet名称分别为image和img2,在view controller中定义一个布尔类型一会判断要用到
private var rectVisible:Bool = true
在面板中先显示第一张图片
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.addSubview(img1) //第一张图片
}
重写一个方法
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
func completeHandle(v:Bool){
println("点击了图片")
rectVisible = !rectVisible
}
// UIView.transitionFromView(img1, toView: img2, duration: 1.0, options: UIViewAnimationOptions.TransitionCrossDissolve, completion: completeHandle)
//每点击一次切换一次图片
if rectVisible{
UIView.transitionFromView(img1, toView: img2, duration: 1.0, options: UIViewAnimationOptions.TransitionCrossDissolve, completion: completeHandle)
}else{
UIView.transitionFromView(img2, toView: img1, duration: 1.0, options: UIViewAnimationOptions.TransitionFlipFromRight, completion: completeHandle)
}
}
//duration:间隔时间
//UIViewAnimationOptions:动画效果
viewcontroller源码如下
import UIKit
class ViewController: UIViewController {
private var rectVisible:Bool = true
@IBOutlet var img2: UIImageView!
@IBOutlet var img1: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.addSubview(img1)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
func completeHandle(v:Bool){
println("Anim complete")
rectVisible = !rectVisible
}
// UIView.transitionFromView(img1, toView: img2, duration: 1.0, options: UIViewAnimationOptions.TransitionCrossDissolve, completion: completeHandle)
if rectVisible{
UIView.transitionFromView(img1, toView: img2, duration: 1.0, options: UIViewAnimationOptions.TransitionCrossDissolve, completion: completeHandle)
}else{
UIView.transitionFromView(img2, toView: img1, duration: 1.0, options: UIViewAnimationOptions.TransitionFlipFromRight, completion: completeHandle)
}
}
}