Я подклассифицирую UIImageView, так что каждый раз, когда устанавливается свойство изображения, происходит анимация. Было выполнено следующее:Переопределение методов getter/setter изображений UIImageView
import UIKit
class AnimatedImageView: UIImageView {
var img: UIImage! {
get {
return self.image
}
set {
self.image = newValue
UIView.animateWithDuration(0.5, delay: 0.4, usingSpringWithDamping: 0.2, initialSpringVelocity: 5.0, options: .CurveEaseIn, animations: {_ in
self.transform = CGAffineTransformMakeScale(1.1, 1.1);
}, completion: {_ in
self.transform = CGAffineTransformIdentity;
})
}
}
Это неудивительно. Я подклассифицировал UIImageView и добавил совершенно новую переменную под названием «img», которая, в свою очередь, модифицирует свойство «image» UIImageView.
Проблема заключается в том, что конечный пользователь может, по-видимому, по-прежнему изменять свойство изображения «AnimatedImageView».
import UIKit
class AnimatedImageView: UIImageView {
override var image: UIImage! {
get {
return self.image
}
set {
self.image = newValue
UIView.animateWithDuration(0.5, delay: 0.4, usingSpringWithDamping: 0.2, initialSpringVelocity: 5.0, options: .CurveEaseIn, animations: {_ in
self.transform = CGAffineTransformMakeScale(1.1, 1.1);
}, completion: {_ in
self.transform = CGAffineTransformIdentity;
})
}
}
Конечно это приводит к StackOverflow, потому что, когда я называю self.image = newValue
он неоднократно называет метод установки, который я преодолено в моем подклассу. Итак, каков правильный способ переопределить методы getter/setter свойства image в UIImageView
Омг конечно. Спасибо! – cph2117