Я пытаюсь обнаружить, что UIImageView (UIimage) изменился или не использует KeyValueObserver или любой другой возможный метод, в моем представлении изображения было изображение при его первой загрузке, поэтому это не image.image != nil
. Я использую UIPickerController, поэтому, когда я выбираю изображение, значение изменится , я хочу обнаружить это изменение, чтобы запустить некоторый код, например для Пример: изменить цвет кнопки ИЛИ включить его
btn.backgroundColor = UIColor.green
btn.isEnabled = true
поэтому я попытался добавить наблюдателя таким образом, но ничего не произошло, нет распечатки, нет точек останова.
let driverPImg: UIImageView = {
let image = UIImageView(image: #imageLiteral(resourceName: "DriverPimg"))
image.layer.cornerRadius = 75
image.clipsToBounds = true
image.contentMode = .scaleAspectFill
image.isUserInteractionEnabled = true
image.translatesAutoresizingMaskIntoConstraints = false
return image
}()
let key1: String = "key1"
// in ViewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
self.ProfileImg.image!.addObserver(self, forKeyPath: key1, options: .new, context: nil)
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == key1{
print("not changed")
}else{
print("it did changed")
}
}
key1
следует использоватьimage
? Тем не менее, почему вы пытаетесь наблюдать за изображением изображения? Это кажется странным. - person Sweeper   schedule 06.10.2020UIImageView
и переопределить свойствоimage
? а затем настроитьwillSet
иdidSet
? - person RY_ Zheng   schedule 06.10.2020did and willSet
в своей жизни @RYZheng - person Cloud Music   schedule 06.10.2020