Как не допустить, чтобы представления во время анимации накладывались друг на друга? - PullRequest
0 голосов
/ 27 мая 2020

Я написал метод для представлений, который перемещает представления в случайных направлениях. Но я бы хотел улучшить его, чтобы во время этого движения виды не накладывались друг на друга. Есть ли способ улучшить мой код:

@objc func bottomAnimationLoop(_ animationID: String?, finished: NSNumber?, context: UnsafeMutableRawPointer?) {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(20)

    [v5, v6, v7, v8, v9].forEach { (vi) in
        let topRandomY = arc4random_uniform(UInt32(UIScreen.main.bounds.height / 2) + 1) + UInt32(UIScreen.main.bounds.height / 2)
        let x = CGFloat(arc4random() % UInt32(view.bounds.size.width))
        let y = CGFloat(topRandomY % UInt32(view.bounds.size.height))

        let squarePostion = CGPoint(x: x, y: y)
        vi.center = squarePostion
    }

    UIView.setAnimationDelegate(self)
    UIView.setAnimationDidStop(#selector(bottomAnimationLoop(_:finished:context:)))

    UIView.commitAnimations()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...