Как эффективно вращать UIButton и другие элементы управления UIView с помощью Swift - PullRequest
0 голосов
/ 10 января 2020

Фон

Ниже у меня есть функция, которая непрерывно вращает множество независимых UIButton, различные скорости и разные направления, по часовой стрелке или против часовой стрелки. Эта функция работает очень хорошо, но я не могу не думать, что есть более эффективные способы поворота органов управления, которые менее интенсивны на процессоре устройства и батарее.

Вопрос

Может ли опытный программист предложить лучший код для более эффективного вращения элементов управления в Swift?

Код

override func viewDidLoad() {
    rotateButton1()
    rotateButton2()
    //
    //
    //
    rotateButton15()
}

func rotateButton1() {
    UIView.animate(withDuration: 45, delay: 0, options: .curveLinear, animations: { () -> Void in
        self.Button1.transform = self.Button1.transform.rotated(by: CGFloat(Double.pi/2))
    }) { (finished) -> Void in
            self.rotateButton1()
    }
}

func rotateButton2() {
    UIView.animate(withDuration: 15, delay: 0, options: .curveLinear, animations: { () -> Void in
        self.Button2.transform = self.Button2.transform.rotated(by: -CGFloat(Double.pi/2))
    }) { (finished) -> Void in
            self.rotateButton2()
    }
}

//
//
//

func rotateButton15() {
    UIView.animate(withDuration: 30, delay: 0, options: .curveLinear, animations: { () -> Void in
        self.Button15.transform = self.Button15.transform.rotated(by: CGFloat(Double.pi/2))
    }) { (finished) -> Void in
            self.rotateButton9()
    }
}
...