Анимация движения UIImageView с последующим использованием CGRectIntersection

У меня есть UIImageView (стик) поверх моего экрана, и когда появляется вид, он анимирует движение по всему экрану до его конца. В середине экрана есть UIButton (рука), которую я буду нажимать всякий раз, когда изображение, которое идет вниз, находится поверх этой кнопки. Вот мой код:

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

}

Метод touchHand — это когда я касаюсь UIButton в середине экрана. Проблема в том, что он не работает! Я напечатал stick.frame, и он не меняется... Я также пытался анимировать с помощью YConstraint, который у меня есть, и все еще не работает, потому что он просто остается прежним, хотя и движется... Есть идеи? Спасибо


person Pedro Cabaço    schedule 15.07.2015    source источник


Ответы (1)


Это очень похоже на этот вопрос, поэтому следующее должно помочь ты:

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