嘗試實現您的awakeFromNib方法,並添加prepareForInterfaceBuilder方法
override func awakeFromNib() {
super.awakeFromNib()
self.initView()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
self.initView()
}
EDITED
,因爲我使用這個類所有的時間這很奇怪,在我的故事板工作得很好渲染
import UIKit
@IBDesignable class GenericXibView: UIView {
@IBInspectable var nibName:String?
/**
View name.
*/
func getNibName() ->String?
{
return nibName
}
/**
View itself.
*/
var vView : UIView!;
override func awakeFromNib() {
super.awakeFromNib()
self.setup()
}
/**
Class construct. Initialize the view.
*/
public override init(frame oFrame: CGRect) {
super.init(frame: oFrame);
self.setup();
}
/**
Class construct. Initialize the view.
*/
public required init?(coder oDecoder: NSCoder) {
super.init(coder: oDecoder);
self.setup();
}
/**
Initialize the custom view and add it to this.
*/
fileprivate func setup() {
assert(self.getNibName() != nil, "View with empty nib name can't be instatiated")
self.vView = UINib(nibName: self.getNibName()!, bundle: Bundle(for: type(of: self))).instantiate(withOwner: self, options: nil)[0] as! UIView;
self.vView.translatesAutoresizingMaskIntoConstraints = false;
self.addSubview(vView);
self.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[view]-0-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view":self.vView]));
self.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[view]-0-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view":self.vView]));
// self.vImgUser.layer.cornerRadius = (self.vImgUser.frame.size.width/2);
// self.vImgUser.layer.masksToBounds = true;
self.setNeedsLayout();
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
setup()
vView.prepareForInterfaceBuilder()
}
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
}
還請確保您的班級在您的xib文件中設置爲fileOwner
希望這有助於
'view'的高度是多少? –
背景視圖是52,圖像是14 –
嘗試背景視圖高度30和圖像14 –