如何在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
。myUIViewController
。在我的例子中,如果我的图像视图发生了变化,我希望这样做,然后让我知道它是否发生了变化。首先创建新的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。是的,我之所以用这个名字是因为演示代码。嘿,它很管用