1
我已经设置了文件的所有者是UserBannerView。 故事板中使用此.xib文件的UIView也设置为UserBannerView。 我没有收到任何错误,但它不会显示在模拟器或故事板中。iOS的 - 无法得到@IBDesignable的.xib文件,以显示在故事板或模拟器
import UIKit
@IBDesignable class UserBannerView: UIView {
var view: UIView!
@IBOutlet weak var userCreditsLabel: UILabel!
@IBOutlet weak var userRenewDateLabel: UILabel!
@IBOutlet weak var userImage: circlePP!
@IBOutlet weak var userMembershipBtn: UIButton!
@IBOutlet weak var userNameLabel: UILabel!
var nibName:String = "UserBannerView"
public override init(frame:CGRect){
super.init(frame: frame)
print("UserBannerView init from frame")
setup()
}
public required init?(coder aDecoder:NSCoder){
super.init(coder: aDecoder)
print("UserBannerView init from decode")
setup()
}
override func awakeFromNib() {
print("UserBannerView awakeFromNib")
// setup()
}
func setup() {
print("UserBannerView:setup")
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "UserBannerView", bundle: bundle)
self.view = nib.instantiate(withOwner: self, options: nil).first as! UIView
self.view.frame = bounds
self.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.addSubview(self.view)
}
}
不知道是什么你正在努力实现。看起来你有一个'UserBannerView'的类,它从xib中取消存档相同的视图并添加到它自己。你的'setup'方法永远不会被调用,因为你的'init?(coder aDecoder:NSCoder)'永远不会被调用。真是一团糟! –
我的故事板中有一个视图,类为UserBannerView,它调用init?(coder aDecoder:NScoder)。然后我有一个UserBannerView.xib文件 – Charles
在.xib文件中为UserBannerView设置的类是什么? –