【发布时间】:2019-09-15 15:21:13
【问题描述】:
我已经设置了一个子类UIView,并希望在 IB 中看到嵌入的图像 - 所以我将其设置为 IBDesignable
@IBDesignable
class DieView: UIView {
@IBInspectable
var dieImage : UIImage = UIImage()
override init(frame: CGRect) {
super.init(frame: frame)
updateLayout()
}
convenience init() {
self.init(frame: CGRect.zero)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
updateLayout()
}
// for IB
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
updateLayout()
}
func updateLayout() {
self.backgroundColor = .red
let profileImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height))
profileImageView.image = UIImage(named: "dice1")
profileImageView.contentMode = .scaleAspectFit
profileImageView.layer.masksToBounds = false
self.addSubview(profileImageView)
}
func showNumber(number: Int) {
}
}
背景颜色发生变化,但嵌入的图像不会更新。为什么不呢?
【问题讨论】:
-
你不会在任何地方使用那个图像,为什么它会出现?
-
添加为子视图。它在运行时出现,那么用什么方法让它出现在storyboard上呢?
-
我没有看到图片被添加到代码的任何地方,我只能看到这个
UIImage(named: "dice1")正在被使用。 -
profileImageView.image = UIImage(named: "dice1") 然后添加到父 self.addSubview(profileImageView)
标签: ios swift ibdesignable