XCode不加载自定义视图

时间:2014-11-01 13:21:25

标签: objective-c uiview swift uiviewcontroller interface-builder

我已为错误消息创建了自定义视图。

我创建了一个 ErrorView.swift 子类UIView,我还在Interface Builder中创建了 ErrorView.xib

在身份检查器中,我将 xib 的自定义类设置为 ErrorView.swift 但是 当我尝试加载这个特定的视图时,它不起作用。

为什么呢?你能救我吗?

这是代码:

我的个性化课程名为ErrorView

Class ErrorView: UIView {
  class func errorInView(view:UIView, animted:Bool) -> ErrorView {
    println("ERROR VIEW LOADED")
    let errorView = ErrorView(frame: view.bounds)
    errorView.opaque = false
    view.addSubview(errorView)
    return errorView
  }
}

我的xib:

http://i59.tinypic.com/23tnlev.png

这是我在ViewController中用来调用视图的代码。

let errorView = ErrorView.errorInView(self.view, animted: true)

1 个答案:

答案 0 :(得分:1)

这里的问题是你没有加载xib,而是在代码中创建一个新的错误视图。

如果在创建errorView后添加errorView.backgroundColor = UIColor.greenColor(),但在将其添加为子视图之前,您将看到屏幕变为绿色。我已将此示例发布为gist

如果要从xib创建视图,则必须使用正常NSBundle.mainBundle()调用加载xib。

let errorView = NSBundle.mainBundle().loadNibNamed("ErrorView", owner: self, options: nil)[0] as ErrorView

而不是使用ErrorView(frame:)

创建视图

此示例也是gist