我正在构建一个自定义UIView,用于导航栏,并希望在我的故事板中的视图控制器中显示此栏。
酒吧有两个部分。一个UIView用于背景,一个UIImageView用于波形图像。我的问题是,如果我在故事板中使用该自定义视图,只有背景UIView得到实时渲染而图像没有。如果我为图像设置@IBInspectable
并将其设置为检查器中的UIImageView,则可以正常工作。
以下是条形图:
这是我的代码(Swift 3):
TopBar.swift
@IBDesignable
class TopBar: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
initView()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
initView()
}
func initView() {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "TopBar", bundle: bundle)
let view = nib.instantiate(withOwner: self, options: nil).first as! UIView
view.frame = bounds
view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
addSubview(view)
}
}
答案 0 :(得分:0)
尝试实现awakeFromNib方法并添加prepareForInterfaceBuilder方法
SELECT tp.tp_id, m1.result as r1, m2.result as r2
FROM tourneyplayers tp, motos m1, motos m2
,heats h1, heats as h2
WHERE tp.tp_id = m1.tpid
AND tp.tp_id = m2.tpid
AND tp.tourneyId = 115
AND ageId = 16
AND m2.idHeat = h1.heatId
AND m1.idHeat = h2.heatId
<强> EDITED 强>
这很奇怪,因为我一直使用这个类,并且在我的故事板中可以很好地渲染
override func awakeFromNib() {
super.awakeFromNib()
self.initView()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
self.initView()
}
还要确保您的类在xib文件中设置为fileOwner
希望这有帮助
答案 1 :(得分:0)
经过与Reinier Melian的多次讨论以及许多反复试验之后,我才弄明白是什么导致了这个问题。
在我的Assets.xcassets文件夹中,我导入了仅用于iPhone设备的图像。在检查器中将此设置为通用后,所有内容都与我的问题中列出的代码一致。
无论如何,非常感谢给Reinier Melian帮助我! (https://stackoverflow.com/users/6190582/reinier-melian)