我有一个带有 UIViewController 的应用,其中包含自定义 UIView。我想在该自定义 UIView 中设置一个变量,但它不会更新... 我已经这样做了一千次,它总是有效,但这次没有,我真的不知道我做错了什么,欢迎任何帮助!
在我的 View Controller 中:
var sjablonview: sjablonPicker!
sjablonview = sjablonPicker(frame: CGRect(x: btnUndo.frame.origin.x, y: DrawingView.frame.origin.y,
width: (btnX.frame.origin.x + btnX.frame.size.width) - btnUndo.frame.origin.x, height: 250))
sjablonview.alpha = 1
sjablonview.mpUitklapping = 300
self.view.addSubview(sjablonview)
在我的自定义 UIView 中:
class sjablonPicker: UIView {
var mpUitklapping = CGFloat(100)
override init(frame: CGRect){
super.init(frame: frame)
print(mpUitklapping) // --> output = 100 and not 300
...
最佳答案
您正在从初始化程序内部进行打印。在您更改 mpUitklapping
的值之前您的 View 已初始化。您的初始化器从这一行被调用:
sjablonview = sjablonPicker(frame: CGRect(x: btnUndo.frame.origin.x, y: DrawingView.frame.origin.y, width: (btnX.frame.origin.x + btnX.frame.size.width) - btnUndo.frame.origin.x, height: 250))
值已更改,您只是不打印更新后的值。
关于swift - 无法在 subview 中设置 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44806833/