iOS - 自定义视图frame.size.height给出0值

时间:2016-07-01 19:04:37

标签: ios swift

我是iOS编程的新手。我正在关注this教程,但我遇到了intrinsicContentSize()函数的问题。我写了这段代码:

    override func intrinsicContentSize() -> CGSize {
        let buttonSize = Int(frame.size.height)
        let width = (buttonSize * starCount) + (spacing * (starCount - 1))
        return CGSize(width: width, height: buttonSize)
    }

它属于我为制作自定义视图而创建的自定义类(它是一个必须处理五星级评级的控件)。 问题是frame.size.height给出一个0值,因此视图不会显示在屏幕上。 那么,问题出在哪里?我已经复制了教程中的代码,如果你进入"实现自定义控件"我可以检查它。然后到"声明按钮大小的常量"。 我使用Xcode测试版,所以swift版本是3.0,而教程适用于swift 2.3,这可能是个问题吗?

2 个答案:

答案 0 :(得分:2)

我也遇到了这个问题。 intrinsicContentSize()已更改为属性,因此您可以像这样覆盖它:

override var intrinsicContentSize: CGSize {
    let buttonSize = Int(frame.height)
    let width = (buttonSize * starCount) + (spacing * (starCount - 1))
    return CGSize(width: width, height: buttonSize)
}

答案 1 :(得分:0)

您在项目中使用了StackView吗?检查图像:

stack view