gpt4 book ai didi

ios - 在 Swift 中子类化 UIView - 错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:55 26 4
gpt4 key购买 nike

我有一个名为 MyView.swift 的文件,它看起来像这样:

class MyView : UIView {

}

我还有一个 MyView.xib 文件,其中的 View 的类设置为 MyView。

在 View Controller 中我有这个:

var myView: MyView?

override func viewDidLoad() {
super.viewDidLoad()

self.myView = NSBundle.mainBundle().loadNibNamed("MyView", owner: nil, options: nil)[0] as MyView
self.myView.frame = frame;
self.view.addSubview(self.myView);

}

我收到这个错误:

MyView? does not have a member named 'frame'

为什么? MyView 是 UIView 的子类...

最佳答案

您将不得不隐式解包该可选,或使用可选链接。

self.myView!.frame = frame

或者利用可选链。

self.myView?.frame = frame 
// can do this now in Swift.

第一个选项更危险,因为当你强行解包一个可选的,并且它是 nil 时,会发生运行时错误。

编辑 抱歉,可选链接不是这里工作的正确工具。如果您想查询帧的值,它是正确的工具。或者,您可以使用 if let 语法。

if let optionalView = self.myView {
var queriedFrame = optionalView.frame
}

关于ios - 在 Swift 中子类化 UIView - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502135/

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