didSet在Swift 5中陷入无限循环

时间:2019-07-11 10:41:40

标签: ios swift5

我只是将UISlider中的UIViewControllerUIStoryboard拖放,并想要进行一些转换。因此,我使用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
}

0 个答案:

没有答案