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, foregroundImageView.frame.origin.y, backgroundImageView.frame.width * (rating! / 10), foregroundImageView.frame.height)
foregroundImageView.frame = rect
}
本文介绍了Swift中使用willSet和didSet关键字重写属性的set方法来实现数据绑定和视图布局的动态更新。通过实例展示了如何在属性变化时触发特定操作,并且在layoutSubviews方法中填充数据并调整视图布局。
1092

被折叠的 条评论
为什么被折叠?



