ios swift3,错误说框架没有成员大小

wyl*_*cat 1 ios swift swift3

我不知道框架到底是什么,但我可以建造

override public var intrinsicContentSize: CGSize {
    let buttonSize = Int(frame.size.height)
    let width = (buttonSize * starCount) + (spacing * (starCount-1))
    return CGSize(width: width, height: buttonSize)
}
Run Code Online (Sandbox Code Playgroud)

但我不能建立

class RatingControl: UIView {

// MARK: Properties 

let spacing = 5
let starCount = 5
let buttonSize = Int(frame.size.height)

.....
}
Run Code Online (Sandbox Code Playgroud)

此代码和错误表示“类型'(UIView)->(CGRect)-> CGRect'的值没有成员'大小'”

为什么会发生这种情况?

提前致谢。

ped*_*uan 5

这是因为您没有frame在某些方法中声明变量。或者更好的是,正如我所见,你扩展 UIView,你应该使用类似的东西:

let buttonSize = Int(self.frame.size.height)
Run Code Online (Sandbox Code Playgroud)

...或检查该frame变量应该是什么,使用

print(frame)
Run Code Online (Sandbox Code Playgroud)

let buttonSize ...在行前