Swift Can';t在子视图中设置变量

Swift Can';t在子视图中设置变量,swift,uiview,uiviewcontroller,Swift,Uiview,Uiviewcontroller,我有一个带有UIViewController的应用程序,其中包含自定义UIView。我想在自定义UIView中设置一个变量,但它不会更新。。。 我已经做了一千次了,它一直都很有效,但这次没有,我真的不知道我做错了什么,欢迎任何帮助 在我的viewcontroller中: var sjablonview: sjablonPicker! sjablonview = sjablonPicker(frame: CGRect(x: btnUndo.frame.origin.x, y: DrawingVie

我有一个带有UIViewController的应用程序,其中包含自定义UIView。我想在自定义UIView中设置一个变量,但它不会更新。。。 我已经做了一千次了,它一直都很有效,但这次没有,我真的不知道我做错了什么,欢迎任何帮助

在我的viewcontroller中:

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)
在我的自定义视图中:

class sjablonPicker: UIView {

var mpUitklapping = CGFloat(100)

override init(frame: CGRect){
    super.init(frame: frame)

    print(mpUitklapping) // --> output = 100 and not 300
...

您正在从初始化器内部打印。在更改
mpuitclapping
的值之前,视图已初始化。从此行调用您的初始值设定项:

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))

值被更改,您只是不打印更新后的值。

在您能够设置
mpUitklapping
属性之前很久,
init
中的print语句就被调用了。请将
print
放在执行
sjablonview.mpUitklapping=300
的位置,然后查看哪个先发生。仅供参考-类名应该以大写字母开头。谢谢每个人我真的很傻,对不起哈哈!祝你今天愉快