Swift 4 - функция фона не работает - PullRequest
0 голосов
/ 08 мая 2018

Я сделал эту простую игру со Swift 4, но она не работает.

Код:

class ViewController: UIViewController {
    @IBOutlet weak var TheCharacter: UIImageView!
    @IBOutlet weak var rocket1: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.rocket1.isHidden = true

        if 1 % 1 == 0 {
            if 0 == 0{
                self.rocket1.isHidden = false
                let xPosR = rocket1.frame.origin.x + 500
                let yPosR = rocket1.frame.origin.y

                let heightCharacterR = rocket1.frame.size.height
                let widthCharacterR = rocket1.frame.size.width

                UIView.animate(withDuration: 1.75, animations: {
                    self.rocket1.frame = CGRect(x: xPosR, y: yPosR
                        , width: widthCharacterR, height: heightCharacterR)
                }) { (finished) in

                }
                self.rocket1.isHidden = true
                self.rocket1.frame = CGRect(x: xPosR - 500, y: yPosR, width: widthCharacterR, height: heightCharacterR)
            }
        }
    }
}

Я знаю, что это плохо написано, но проблема в том, что одна из ракет должна двигаться на моем экране (с одной стороны на другую), потому что условие всегда верно, так как 0 == 0 и 1% 1 == 0. Но это не движется.

Почему?

1 Ответ

0 голосов
/ 08 мая 2018

Вы анимируете представления в viewDidLoad (), то есть до того, как они будут видны в окне. Переместите этот код в viewDidAppear (). Тогда ваши виды видны и могут быть анимированы.

И убедитесь, что в ваших представлениях не используется автоматическая разметка, ограничивающая фрейм. Анимация кадра не очень хорошая идея. OTOH.

...