CustomView中的IBOutlets即将发布。
我创建了自定义视图(xib)。
请查找图像以获取更多信息。
class TextFieldView: UIView {
@IBOutlet var contentView: TextFieldView!
@IBOutlet weak var customTextField: UITextField!
@IBOutlet weak var rightButton: UIButton!
@IBOutlet weak var placeHolderLabel: UILabel!
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
override func awakeFromNib() {
super.awakeFromNib()
}
func commonInit()
{
let bundle = Bundle(for: type(of: self))
bundle.loadNibNamed("TextFieldView", owner: self, options: nil)
customTextField.backgroundColor = UIColor.green
NSLog("Called")
}
仍然使用exc_bad_access引发错误。(在loadNibNamed代码行中)
最佳答案
Swift 3版本
这是对我有用的解决方案。确保IB中的文件对象已分配了TextFieldView类(而不是UIView本身)。另外,请确保将所有IBOutlets连接到正确的位置,否则您可能会遇到麻烦。
class TextFieldView: UIView {
@IBOutlet var contentView: TextFieldView!
@IBOutlet weak var customTextField: UITextField!
@IBOutlet weak var rightButton: UIButton!
@IBOutlet weak var placeHolderLabel: UILabel!
override init (frame: CGRect) {
super.init(frame: frame)
commonInit()
}
//This lets us use TextFieldView in IB
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
Bundle(for: TextFieldView.self).loadNibNamed("TextFieldView", owner: self, options: nil)
//Positioning content so it fills view space
contentView.frame = self.bounds
contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
addSubview(contentView)
}
关于ios - 从Xib加载CustomView时Exc_Bad_Access,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47845279/