Как создать вычисляемое свойство UIActivityIndicator из функции в расширении - PullRequest
0 голосов
/ 12 ноября 2018

Мне удалось создать расширение UIActivityIndicatorView для поворота animating на его запуск и остановку. Однако я бы хотел улучшить его, используя computed property типа bool, используя get и set. Я пытался, но не могу придумать, как это сделать. Как я мог рефакторинг это.

extension UIActivityIndicatorView {
    func loadingIndicator(_ isLoading: Bool) {
        if isLoading {
            self.startAnimating()
        } else {
            self.stopAnimating()
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы можете оптимизировать свой код следующим образом:

extension UIActivityIndicatorView {
    var isLoading:Bool {
        get {
            return isAnimating
        } set {
            newValue ? startAnimating() : stopAnimating()
        }
    }
}
0 голосов
/ 12 ноября 2018

Вы можете использовать isAnimating свойство UIActivityIndicatorView в качестве базового значения для isLoading. Вам просто нужно убедиться, что вы правильно управляете запуском / остановкой анимации в установщике, который установит isAnimating, и в результате isLoading также будет настроен правильно.

extension UIActivityIndicatorView {
    var isLoading:Bool {
        get {
            return isAnimating
        } set {
            if newValue {
                self.startAnimating()
            } else {
                self.stopAnimating()
            }
        }
    }
}
...