swift - 无法在 subview 中设置 var

标签 swift uiview uiviewcontroller

我有一个带有 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/

相关文章:

iOs:在启动时,转到指定的 View Controller

ios - 将长字符串设置为 UILabel 卡住我的应用程序并出现未检测到的错误

ios - 将字符串转换为运算符 - swift

ios - 创建单独的文件

ios - Swift 中一个屏幕上两个 UIViewController 之间的交互

iphone - 在导航堆栈中加载 UIViewController 两次

swift - 使用图像作为 UITableView 背景;背景仍然显示黑色

iphone - iOS UIScrollview 自动布局 - UILayoutFittingCompressedSize

ios - 重新加载 UIView 和 UILabel 框架

ios - UITableview/UIView 委托(delegate)混淆