如果已设置了UIImageView图像,则可以在Swift中通知



如果是我的班级,我会通过:

解决这个问题。
class myUIImageView{
  var image : UIImage? {
   didSet {
    if self.image != nil{
      //do my stuff
    }
   }
  }
  //Other fields and functions
}

我想要的是被通知(观察者

我确实找到了答案... Swift允许覆盖var,因此这里没有真正的并发症。只需更改使用UIImageView使用myUIImageView的位置。

class myUIImageView : UIImageView{
 override var image: UIImage?{
    didSet {
        if image != nil{
           //do your stuff (add effects, layers, ...)
        } else {
          //clean your filter or added layer (remove your effects over the view)
        }
    }
 }
}

update

请建议,如果您的UIImageView是集合视图的一部分,则应在收集重新查看时删除效果。否则,即使没有显示图像,它也会保持可见。

您应该将视图控制器的视图视为私有。唯一应该更改UIImageView的对象是它属于的UiviewController。

假设您这样做,那么视图控制器可以在更改图像视图的图像时做任何您想做的事情。

最新更新