构造函数不能在swift中工作

问题描述:

我想用简单的标题创建自定义复选框。复选框有构造函数,但是当我调用它时,标题不会出现。我应该如何正确调用构造函数?构造函数不能在swift中工作

自定义复选框:https://github.com/Marxon13/M13Checkbox

import UIKit 



class TodoTableViewCell: UITableViewCell { 
override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
    //checkbox.titleLabel.text = "asd" 
    self.checkbox = M13Checkbox(title: "zcxc") 

} 

@IBOutlet weak var checkbox: M13Checkbox! 



override func setSelected(selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 

} 
+1

所以你可以看到复选框,但只有标题丢失? – streem

+0

是的,只有标题不出现 –

+0

您是否尝试过设置复选框的框架或大小? – Arvind

我相信问题是,你让你的实际复选框设置与initWithCoder:方法通过Interface Builder中添加的M13Checkbox。

我认为这样做最简单的方法是清除复选框,在Interface Builder并将其添加到细胞编程:我不使用M13Checkbox自己

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
    //checkbox.titleLabel.text = "asd" 
    let checkbox:M13Checkbox = M13Checkbox(title: "zcxc") 
    checkbox.frame = self.frame 
    self.addSubview(checkbox) 
} 
+0

我认为如果复选框已经可见,则不需要addSubview。此外,在这里写的additionalview语句是obj-c。 – Arvind

+1

@Arvind Yep忘记了obj-c代码。不过,我将它添加到视图中,因为我告诉他在界面构建器中将其删除。 – streem

+0

好的,我错过了。大。 – Arvind

,但不能预期使用模式。当你从xib载入你的UI时,复选框应该已经被实例化。你在这里做的是你替换它。

相反,在界面构建器中为元素设置正确的类,并根据需要仅配置其属性。另外,请记住,您的代码根本不会将任何复选框添加到视图层次结构中,也不会获得任何布局约束。