2015-07-15 1 views
0

J'ai un UIImageView (bâton) au-dessus de mon écran, et lorsque la vue apparaît, il anime un mouvement à travers l'écran, jusqu'à la fin de celui-ci. Au milieu de l'écran il y a un UIButton (main) que je presse chaque fois que l'image qui va vers le bas est au-dessus de ce bouton. Voici mon code:Animer un mouvement UIImageView puis utilisez CGRectIntersection

override func viewDidAppear(animated: Bool) { 
    UIView.animateWithDuration(1, animations: {self.stick.center = CGPointMake(self.stick.center.x, 760)}, completion: nil) 
} 

@IBAction func touchHand(sender: UIButton) { 
    if !CGRectIsNull(CGRectIntersection(stick.frame, hand.frame)){ 
     println("intersected") 
    } 

} 

La méthode est touchHand quand je touche le UIButton au milieu de l'écran. Le problème est, ça ne fonctionne pas! Je println'ed le stick.frame et il ne change pas ... J'ai aussi essayé animant à travers le YConstraint que j'ai et ne fonctionne toujours pas, car il reste tout de même, même si elle bouge ... Des idées? Merci

Répondre

0

Il est tout à fait semblable à this question, donc ce qui suit devrait vous aider:

@IBAction func touchHand(sender: UIButton) { 
    let stickPresentationFrame = (stick.layer.presentationLayer() as! CALayer).frame 
    if !CGRectIsNull(CGRectIntersection(stickPresentationFrame, hand.frame)){ 
     println("intersected") 
    } 
}