Ответ, на который Алекс указал вам - 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)
}
Это установит название вашей кнопки на «Работает!» или "Не удалось!"
Если вы видите "Работает!" Вы также должны увидеть свое изображение.
В противном случае у вас что-то не так с вашим ресурсом изображения.