我有一个自定义按钮控件,试图在其中显示按钮的图像,但是尽管已通过程序定义了它,但它并未出现。
@IBDesignable class UCButtonNext: UIButton {
// setup programatically
override init(frame: CGRect) {
super.init(frame: frame)
setupButton()
}
// setup via Storyboard
required init?(coder aDecoder: NSCoder) {
//fatalError("init(coder:) has not been implemented")
super.init(coder: aDecoder)
setupButton()
}
override func awakeFromNib() {
super.awakeFromNib()
setupButton()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
setupButton()
}
func setupButton() {
setupButtonStyle()
setupShadow()
}
func setupButtonStyle() {
setTitleColor(.white, for: .normal)
backgroundColor = UIColor.clear
titleLabel?.font = UIFont(name: "Courier", size: 18)
setTitleColor(UIColor.black, for: .normal)
layer.cornerRadius = frame.height / 2
layer.borderWidth = 1.0
layer.borderColor = UIColor.white.cgColor
setImage(UIImage(named: "btnArrowRight"), for: .normal)
}
我的按钮在设计器中显示,但似乎无法显示图像。
答案 0 :(得分:0)
答案 1 :(得分:0)
亚历克斯指出您的答案-https://stackoverflow.com/a/40359161/10657724-应该是您所需要的。
为帮助您调试问题,请更改以下行:
setImage(UIImage(named: "btnArrowRight"), for: .normal)
收件人:
// DYNAMIC BUNDLE DEFINITION FOR DESIGNABLE CLASS
let dynamicBundle = Bundle(for: type(of: self))
// AND THEN SUCCESSFULLY YOU CAN LOAD THE RESSOURCE
if let image = UIImage(named: "btnArrowRight", in: dynamicBundle, compatibleWith: nil) {
setImage(image, for: .normal)
setTitle("Works!", for: .normal)
} else {
setTitle("Failed!", for: .normal)
}
这会将您的按钮标题设置为“ Works!”。或“失败!”
如果您看到“有效!”您还应该看到您的图像。
否则,您的图片资源有问题。