如何在Swift iOS中检测UIImageView中的图像更改

如何在Swift iOS中检测UIImageView中的图像更改,ios,swift,uiimageview,Ios,Swift,Uiimageview,我正在中使用UIImageView。myUIViewController。在我的例子中,如果我的图像视图发生了变化,我希望这样做,然后让我知道它是否发生了变化。首先创建新的swift文件并添加此代码 import UIKit class CustomImageView: UIImageView{ override var image: UIImage?{ didSet{ delegate?.didChangeImage() }

我正在中使用
UIImageView
。my
UIViewController
。在我的例子中,如果我的图像视图发生了变化,我希望这样做,然后让我知道它是否发生了变化。

首先创建新的swift文件并添加此代码

import UIKit
class CustomImageView: UIImageView{
    override var image: UIImage?{
        didSet{
            delegate?.didChangeImage()
        }
    }
    
    var delegate: ImageViewDelegate?
    
}

protocol ImageViewDelegate {
    func didChangeImage()
}
第二:在视图控制器中设置代理

class ImageViewController: UIViewController, ImageViewDelegate {

@IBOutlet weak var yourImageViewOutlet: CustomImageView!
    
    func didChangeImage() {
         print("This Is Working")
         print("Image Is Changed")
         // This is your function
         // this function will called if and only if yourImageViewOutle image is changed
    }

     override func viewDidLoad() {
          super.viewDidLoad()
          yourImageViewOutlet.delegate = self
     }

}
重要提示:outlet从情节提要中,为outlet提供自定义类名。否则它将无法工作。

首先创建新的swift文件并添加此代码

import UIKit
class CustomImageView: UIImageView{
    override var image: UIImage?{
        didSet{
            delegate?.didChangeImage()
        }
    }
    
    var delegate: ImageViewDelegate?
    
}

protocol ImageViewDelegate {
    func didChangeImage()
}
第二:在视图控制器中设置代理

class ImageViewController: UIViewController, ImageViewDelegate {

@IBOutlet weak var yourImageViewOutlet: CustomImageView!
    
    func didChangeImage() {
         print("This Is Working")
         print("Image Is Changed")
         // This is your function
         // this function will called if and only if yourImageViewOutle image is changed
    }

     override func viewDidLoad() {
          super.viewDidLoad()
          yourImageViewOutlet.delegate = self
     }

}
重要提示:outlet从情节提要中,为outlet提供自定义类名。否则它将无法工作。 使用

使用


更改意味着imageview中的图像更改?就像你想检测图像何时改变。它将如何改变?你需要在哪里检测?您能解释一下您的目标吗?更改意味着imageview中的图像更改吗?就像你想检测图像何时改变。它将如何改变?你需要在哪里检测?你能解释一下你的目标吗?你引入了一个强大的参考循环。学员们总是需要
,否则正如Rob所说,您将获得强引用循环。您还需要将协议定义为
class
@objc
,以支持
引用以打破循环。请参阅。您引入了强引用循环。学员始终需要
,否则,正如Rob所说,您将获得强引用循环。您还需要将协议定义为
class
@objc
,以支持
弱引用来打破循环。请参阅。谢谢@Rob let me edit。是的,我之所以使用此名称是因为演示代码。嘿,它可以工作,伙计谢谢@Rob let me edit。是的,我之所以用这个名字是因为演示代码。嘿,它很管用