didSet идет по бесконечному циклу в Swift 5 - PullRequest
1 голос
/ 11 июля 2019

Я просто перетаскиваю UISlider в моем UIViewController из UIStoryboard и хочу выполнить какое-то преобразование.Итак, я пишу код под didSet методом, и он идет по бесконечному циклу.Что я делаю не так?

@IBOutlet weak var sliderNew: UISlider! {
    didSet {
       // Below code calling infinite times
        let scale = self.view.frame.size.width * 0.25
        sliderNew.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2).scaledBy(x: scale, y: scale)
    }
}

Обновление

В случае, если я просто напишу приведенный ниже код, он будет работать нормально.

@IBOutlet weak var sliderNew: UISlider! {
    didSet {
        sliderNew.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2).scaledBy(x: 1.5, y: 1.5)
    }
}

Я пытался сдругой путь, но все тот же вопрос.

@IBOutlet weak var sliderNew: UISlider! {
    didSet {
        sliderNew.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2).scaledBy(x: sliderScale, y: sliderScale)
    }
}

fileprivate var sliderScale: CGFloat {
    //The below code calling infinite loop, why?
    return self.view.frame.size.width * 0.25
}
...