Setter不在Swift工作

时间:2014-07-18 09:07:05

标签: ios uiview swift

我正在尝试将UIView扩展为设置大小和来源的快捷方式,就像Obj-C here中所做的那样。 吸气剂效果很好,但是制定者没有。有什么想法吗?我做错了什么?

这是我从Obj-C重写为Swift的代码:

extension UIView {

...


var height : CGFloat {
get {
    return self.frame.size.height
}
set {
    var r = self.frame;
    r.size.height = height;
    self.frame = r;
}
}

这是另一个,因为CGRect属性是“val”

var width : CGFloat {
set {
    self.frame.size.width = width
}
get {
    return self.frame.size.width
}
}

但这些制定者都没有工作

这很好用,但太长了:)

self.frame.size.width = 100

谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

  

setter名称和括号括起来是可选的。如果你提供   一个setter名称,它被用作setter参数的名称。   如果您未提供setter名称,则默认参数名称为   setter newValue

set方法更改为:

set {
    self.frame.size.width = newValue
}