[Résolu] effet "flip" avec transitionFromView...

LouLou Membre
janvier 2015 modifié dans Objective-C, Swift, C, C++ #1

Salut,


 


EDIT: ça a été résolu en mettant le touch enabled sur un uiview container, qui englobe les 2 vues.


 


j'aimerais créer un simple effet de "flip" en Swift, mais je ne comprends pas les problèmes que je rencontre :


 


- le screen entier flip, au lieu de simplement mes vues, sauriez-vous comment faire l'effet uniquement sur les imageViews de frame 100,100 ?


- le tap ne fonctionne plus après le 2e tap, la fonction handleTap n'est plus reconnue ?


- également, j'ai essayé de tout mettre dans une custom uiview, et ajouter cette uiview dans le uiviewController, mais le tap n'est cette fois pas reconnu du tout. Le code est le même qu'avant, avec le target vers "self" de la uiview.


 


Voici mon code :



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()
}

Merci


Connectez-vous ou Inscrivez-vous pour répondre.