我想创建一个简单的翻转效果,但是我不明白这里的问题:
import UIKit
class ViewController: UIViewController {
var fromOneToTwo : Bool = true
var view1 : UIImageView!
var view2 : UIImageView!
var tap : UITapGestureRecognizer!
func handleTap(tap: UITapGestureRecognizer){
println("1/fromOneToTwo \(fromOneToTwo)")
var v1 = (fromOneToTwo ? self.view1 : self.view2)
var v2 = (fromOneToTwo ? self.view2 : self.view1)
UIView.transitionFromView(v1, toView: v2, duration: 0.5, options: (UIViewAnimationOptions.TransitionFlipFromLeft | UIViewAnimationOptions.CurveEaseInOut) ) { finished in
self.fromOneToTwo = !self.fromOneToTwo
println("2/fromOneToTwo \(self.fromOneToTwo) ")
}
}
func createView( str:String)->UIImageView!{
var img = UIImage(named: str)!
var imgView = UIImageView(frame: CGRectMake(0,0, 200, 200))
imgView.image = img
imgView.sizeToFit()
imgView.userInteractionEnabled = true
imgView.addGestureRecognizer(tap)
return imgView
}
required init(coder aDecoder:NSCoder){
super.init(coder:aDecoder)
tap = UITapGestureRecognizer(target: self, action: "handleTap:")
view1 = createView("imageOnee.png")
view2 = createView("imageTwo.png")
}
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(view1)
view.addSubview(view2)
view.backgroundColor = UIColor.redColor()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
另外,当我尝试将整个代码添加到自定义UIView中并将自定义实例
myView
添加到ViewController时,分接头根本不起作用。 最佳答案
我完成了为container
和view1
创建view2
视图的工作。然后,将拍子识别器添加到此容器视图。
class ViewController: UIViewController {
var fromOneToTwo : Bool = true
var view1 : UIImageView!
var view2 : UIImageView!
var container : UIView!
var tap : UITapGestureRecognizer!
func handleTap(tap: UITapGestureRecognizer){
println("1/fromOneToTwo \(fromOneToTwo)")
var v1 = (fromOneToTwo ? self.view1 : self.view2)
var v2 = (fromOneToTwo ? self.view2 : self.view1)
UIView.transitionFromView(v1, toView: v2, duration: 0.5, options: .TransitionFlipFromLeft | .CurveEaseInOut ) { finished in
self.fromOneToTwo = !self.fromOneToTwo
println("2/fromOneToTwo \(self.fromOneToTwo) ")
}
}
func createView( str:String)->UIImageView!{
var img = UIImage(named: str)!
var imgView = UIImageView(frame: CGRectMake(0, 0, 200, 200))
imgView.image = img
imgView.sizeToFit()
return imgView
}
required init(coder aDecoder:NSCoder){
super.init(coder:aDecoder)
tap = UITapGestureRecognizer(target: self, action: "handleTap:")
view1 = createView("imageOnee.png")
container = UIView(frame: CGRectMake(0, 0, view1.bounds.width, view1.bounds.height))
container.userInteractionEnabled = true
container.addGestureRecognizer(tap)
container.addSubview(view1)
view2 = createView("imageTwo.png")
container.addSubview(view2)
}
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(container)
view.backgroundColor = UIColor.redColor()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
关于ios - 快速翻转 View :全屏翻转+点击手势的问题只起作用两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27749790/