【问题标题】:XCode doesn't load a custom viewXCode 不加载自定义视图
【发布时间】:2014-11-01 13:21:24
【问题描述】:

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

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

在身份检查器中,我将 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)

【问题讨论】:

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


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      相关资源
      最近更新 更多