import UIKitclass 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’的全新变量,该变量又修改了UIImageVIEw的’image’属性.
问题是最终用户可能会改变AnimatedImageVIEw的’image’属性.
import UIKitclass AnimatedImageVIEw: UIImageVIEw {overrIDe var image: UIImage! { get { return self.image } set { self.image = newValue UIVIEw.animateWithDuration(0.5,animations: {_ in self.transform = CGAffinetransformMakeScale(1.1,1.1); },completion: {_ in self.transform = CGAffinetransformIDentity; }) }}
果然这会导致堆栈溢出,因为当我调用self.image = newValue时,它会重复调用我在子类中重写的setter方法.那么,在UIImageVIEw上覆盖’image’属性的getter / setter方法的正确方法是什么
解决方法 只需使用super.image,这将阻止循环. 总结以上是内存溢出为你收集整理的ios – 覆盖UIImageView的图像getter / setter方法全部内容,希望文章能够帮你解决ios – 覆盖UIImageView的图像getter / setter方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)