こんな共通クラスを用意して
struct Data {
var title: String
var subTitle: String
var image: UIImage
var textColor: UIColor
}
class BaseView: UIView {
@IBOutlet private weak var thumbnailImageView: UIImageView?
@IBOutlet private weak var titleLabel: UILabel?
@IBOutlet private weak var subTitleLabel: UILabel?
func set(_ data: Data) {
self.titleLabel?.text = data.title
self.titleLabel?.textColor = data.textColor
self.subTitleLabel?.text = data.subTitle
self.subTitleLabel?.text = data.textColor
self.thumbnailImageView?.image = data.image
}
}
あとは、BaseViewを継承して、BaseViewのIBOutletにxibとかから参照?をくっつけてやればOK
参照をくっつけたIBOutletのみnilじゃなくなるので値が設定される。xibファイルは個々のSampleViewで用意する
final class SampleView: BaseView {
func set(_ data: Data) {
super.set(data)
}
}
final class Sample2View: BaseView {
func set(_ data: Data) {
super.set(data)
}
}
ありなんかな