加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift中的willSet与didSet(重写属性的Set方法)

发布时间:2020-12-14 02:20:55 所属栏目:百科 来源:网络整理
导读:Swift中的willSet与didSet(重写属性的Set方法) var rating: CGFloat? { willSet { println("将要设置新值(newValue)") } didSet { println("rating filed changed form (oldValue) to (rating)") println("rating old((oldValue)) new((rating)))") //

Swift中的willSet与didSet(重写属性的Set方法)

var rating: CGFloat? {
        willSet {
            println("将要设置新值(newValue)")
        } didSet {
            println("rating filed changed form (oldValue) to (rating)")
            println("rating old((oldValue)) new((rating)))")
            //告诉系统将要布局
            self.setNeedsLayout()
            /*
            if rating < 10
            {
                nickName = "Little"
            }else
            {
                nickName = "Big"
            }
            */
            /*
            let rect = CGRectMake(foregroundImageView.frame.origin.x,foregroundImageView.frame.origin.y,backgroundImageView.frame.size.width * (rating!/10),foregroundImageView.frame.size.height)
            foregroundImageView.frame = rect
            */
        }
        
    }



在layoutSubViews()填充数据和布局视图(注意:方法是否会被多次调用)

override func layoutSubviews() {
        super.layoutSubviews()
        //填充数据(布局视图)
        let rect = CGRectMake(foregroundImageView.frame.origin.x,backgroundImageView.frame.width * (rating! / 10),foregroundImageView.frame.height)
        foregroundImageView.frame = rect
        
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读