我不知道框架到底是什么,但我可以建造
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'的值没有成员'大小'”
为什么会发生这种情况?
提前致谢。
这是因为您没有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 ...在行前
| 归档时间: |
|
| 查看次数: |
3939 次 |
| 最近记录: |