我有一个UIView
课程:
class FlashCard: UIView {
var linkedMemory: Memory? {
didSet {
frontView = showContent(of: linkedMemory!.front)
backView = showContent(of: linkedMemory!.back)
}
}
var frontView = UIView()
var backView = UIView()
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupView()
}
func showContent(of linkedMemory: Any) -> UIView {
var contentView = UIView()
if let image = linkedMemory as? UIImage {
let imageView = UIImageView()
imageView.image = image
contentView = imageView
}
if let text = linkedMemory as? String {
let label = UILabel()
label.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
label.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
label.text = text
contentView = label
}
return contentView
}
}
我正在尝试在包含此视图的视图控制器中设置其linkedMemory
属性:
@IBOutlet weak var flashCardView: FlashCard!
override func viewDidLoad() {
calcGroupFamiliarity()
flashCardView.linkedMemory = Memory(masteryLevel: 1, algorithm: Algorithm.algorithm1.chooseAlgorithm(), forgetRatio: 0, lastStudyTime: Date(), front: #imageLiteral(resourceName: "Ideas-Blue"), back: #imageLiteral(resourceName: "Ideas-Yellow"))
// See? I'm trying to change flashCardView's property here, but it never changes :(
}
有人知道如何解决这个问题吗?