如何观察图像旋转?
How to observe Image rotation?
我有一个名为 - (woowwww) 的 ImageView:ImageView
@IBOutlet weak var ImageView: UIImageView!
...我想在每次 ImageView 的 transform
-属性 改变时触发一个事件。
每次 ImageView 旋转可能像这样时,都应该调用一个事件:
self.ImageView.transform = CGAffineTransform(rotationAngle: CGFloat(10))
为了实现这一点,我尝试使用某种 KVO 但显然它没有按预期工作...
override func viewDidLoad() {
super.viewDidLoad()
self.ImageView.addObserver(self.ImageView.transform, forKeyPath: "test", options: .new, context: nil)
}
func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutableRawPointer) {
print("changed")
}
如有任何帮助,我们将不胜感激!谢谢
在 keyPath
中设置 "transform",如下所示:
imgView.addObserver(self, forKeyPath: "transform", options: .new, context: nil)
然后添加以下代码:
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if let newValue = change?[.newKey] as? NSObject {
print("Changed \(newValue)")
}
希望对您有所帮助。
keyPath
应该是 nameOfObject.property
所以如果 imageView 名称是 dd 来监听转换它应该是 dd.transform
试试这个
class ViewController: UIViewController {
@IBOutlet weak var dd: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.addObserver(self, forKeyPath: "dd.transform", options: .new, context: nil)
self.dd.transform = CGAffineTransform(rotationAngle: CGFloat(10))
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if let newValue = change?[.newKey] as? NSObject {
print("Changed \(newValue)")
}
}}
我有一个名为 - (woowwww) 的 ImageView:ImageView
@IBOutlet weak var ImageView: UIImageView!
...我想在每次 ImageView 的 transform
-属性 改变时触发一个事件。
每次 ImageView 旋转可能像这样时,都应该调用一个事件:
self.ImageView.transform = CGAffineTransform(rotationAngle: CGFloat(10))
为了实现这一点,我尝试使用某种 KVO 但显然它没有按预期工作...
override func viewDidLoad() {
super.viewDidLoad()
self.ImageView.addObserver(self.ImageView.transform, forKeyPath: "test", options: .new, context: nil)
}
func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutableRawPointer) {
print("changed")
}
如有任何帮助,我们将不胜感激!谢谢
在 keyPath
中设置 "transform",如下所示:
imgView.addObserver(self, forKeyPath: "transform", options: .new, context: nil)
然后添加以下代码:
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if let newValue = change?[.newKey] as? NSObject {
print("Changed \(newValue)")
}
希望对您有所帮助。
keyPath
应该是 nameOfObject.property
所以如果 imageView 名称是 dd 来监听转换它应该是 dd.transform
试试这个
class ViewController: UIViewController {
@IBOutlet weak var dd: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.addObserver(self, forKeyPath: "dd.transform", options: .new, context: nil)
self.dd.transform = CGAffineTransform(rotationAngle: CGFloat(10))
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if let newValue = change?[.newKey] as? NSObject {
print("Changed \(newValue)")
}
}}