ios – 覆盖UIImageView的图像gettersetter方法

ios – 覆盖UIImageView的图像gettersetter方法,第1张

概述我正在为UI ImageView创建子类,因此每次设置图像属性时都会发生动画.以下是成功的: import UIKitclass AnimatedImageView: UIImageView {var img: UIImage! { get { return self.image } set { self.image = newVal 我正在为UI ImageVIEw创建子类,因此每次设置图像属性时都会发生动画.以下是成功的:

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方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存