我是 Swift 的初学者,我正在研究如何在 Swift 上使用 CustomView Xib 文件。
我有五个CustomView,分别命名为HogeAView~HogeEView
从 HogeAView 到 HogeCView,视图可以加载而不会描述任何错误,并且能够与我放置的所有插座进行交互。
但是 HogeDView 和 HogeEView,与其他三个视图相同的方式不起作用。 两个视图都已加载,但我放置的所有插座在我交互时都没有返回任何响应。 (例如,按下按钮时 UIButton 不会闪烁)
我确认Files'owner UIViewClass是正确的,和代码中写的名字一样,并且没有阻止交互的荒谬的Views。
如果你知道如何解决问题,请给我一个解决方案。
谢谢。
import UIKit
class HogeDView: UIView {
override init(frame: CGRect){
super.init(frame: frame)
loadNib()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
loadNib()
}
func loadNib(){
let view = Bundle.main.loadNibNamed("HogeDView", owner: self, options: nil)?.first as! UIView
view.frame = self.bounds
self.addSubview(view)
}
}
import UIKit
class HogeDViewController: UIViewController {
override func loadView() {
super.loadView()
}
override func viewDidLoad() {
super.viewDidLoad()
self.view = HogeDView()
}
}
我的第一个代码是网上教程的副本...它应该是正确的...基本上我发现的教程是完全错误的。
DonMag 的评论帮助我解决了这个问题。
// Instantiate the HogeDView from its Xib file
let hogeDView = Bundle.main.loadNibNamed("hogeDView", owner: self, options: nil)?.first as! UIView
// Set the frame for the HogeDView
hogeDView.frame = self.view.bounds
// Add the HogeDView as a subview to the parent view
self.view.addSubview(hogeDView)
Donmag 和 HangarRash,感谢你们给我反馈。