【发布时间】:2014-06-08 09:17:38
【问题描述】:
我可能正在做一些非常愚蠢的事情,但我似乎无法使用 Interface Builder 将 IBOutlet 变量连接到自定义视图,但只能在 Swift 中使用。
我创建了一个名为 MyView 的类,它从 UIView 扩展而来。在我的控制器中,我有一个 MyView 变量(声明为 @IBOutlet var newView: MyView)。我进入 IB 并将 UIView 拖到窗口上并给它一个 MyView 类。
每当我在 Objective C 中完成类似操作时,我都可以单击应用程序窗口顶部的 View Controller 按钮,选择变量并将其向下拖动到控件以将两者链接在一起。当我在 Swift 中尝试时,它拒绝识别视图存在。
如果我将控制器中的变量类更改为 UIView,它可以正常工作。但不是我的自定义视图。
还有其他人遇到过这个问题吗?它是一个功能,还是只是我的白痴?
控制器代码
import UIKit
class ViewController: UIViewController {
@IBOutlet var newView:MyView
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
查看代码
import UIKit
class MyView: UIView {
init(frame: CGRect) {
super.init(frame: frame)
// Initialization code
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect)
{
// Drawing code
}
*/
}
【问题讨论】:
-
我也遇到了这个问题,我认为这是一个错误,你应该报告它。