gpt4 book ai didi

ios - 在所需的初始化中从 NSCoder 获取属性(编码器 aDecoder : NSCoder)

转载 作者:搜寻专家 更新时间:2023-11-01 05:49:14 32 4
gpt4 key购买 nike

我正在 Swift 中实现一个 Circle 类(UIView 的子类),它根据框架在其初始化程序中设置其 radius像这样传入 init(frame: CGRect):

override init(frame: CGRect)
{
radius = frame.width/2.0
super.init(frame: frame)
}

我还想确保从 Interface Builder 实例化圆圈时的情况,所以我还实现了“required init(coder aDecoder: NSCoder)”(无论如何我都被 Xcode 强制执行)。

如何检索以某种方式包含在 aDecoder 中的 View 的 frame 属性。我想要实现的基本上是这样的:

required init(coder aDecoder: NSCoder)
{
var theFrame = aDecoder.someHowRetrieveTheFramePropertyOfTheView // how can I achieve this?
radius = theFrame.width/2.0
super.init(coder: aDecoder)
}

最佳答案

您可以在super.init() 设置框架后 计算半径:

required init(coder aDecoder: NSCoder)
{
radius = 0 // Must be initialized before calling super.init()
super.init(coder: aDecoder)
radius = frame.width/2.0
}

关于ios - 在所需的初始化中从 NSCoder 获取属性(编码器 aDecoder : NSCoder),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26323415/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com