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)
}
}
わからないお役に立てば幸いです。また、あなたのXIBファイルで、あなたのクラスはfileOwnerとしてsettedされていることを確認し
あなた
awakeFromNib
メソッドを実装してみてくださいprepareForInterfaceBuilder
方法を追加あなたは達成しようとしています。 'UserBannerView'のためのクラスがあり、xibから同じビューをunarchivingしてそれ自身に追加しているようです。あなたの 'init?(coder aDecoder:NSCoder)'は決して呼び出されないので、あなたの 'setup'メソッドは決して呼び出されません。どのような混乱! –
私は私のストーリーボードに、UserBannerViewとしてのクラスを持つビューを持っています。これはinitを呼びます(コーダーaDecoder:NScoder)。次に、私はUserBannerView.xibファイルを持っています – Charles
そして.xibファイルの 'UserBannerView'にどのようなクラスが設定されていますか? –