ios - 如何在 Swift 中使用 XIB 文件初始化/实例化自定义 UIView 类

标签 ios swift

我有一个名为 MyClass 的类,它是 UIView 的子类,我想用一个 XIB 文件对其进行初始化。我不确定如何使用名为 View.xib

的 xib 文件初始化此类
class MyClass: UIView {

    // what should I do here? 
    //init(coder aDecoder: NSCoder) {} ?? 
}

最佳答案

我测试了这段代码,它运行良好:

class MyClass: UIView {        
    class func instanceFromNib() -> UIView {
        return UINib(nibName: "nib file name", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as UIView
    }    
}

初始化 View 并像下面这样使用它:

var view = MyClass.instanceFromNib()
self.view.addSubview(view)

var view = MyClass.instanceFromNib
self.view.addSubview(view())

更新 Swift >=3.x & Swift >=4.x

class func instanceFromNib() -> UIView {
    return UINib(nibName: "nib file name", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
}

关于ios - 如何在 Swift 中使用 XIB 文件初始化/实例化自定义 UIView 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25513271/

相关文章:

ios - 如何设置 NSViewShowAlignmentRects?

swift - 根据文档的更改重新加载各个 TableView 行

提供给异步调用的 Swift 闭包不接受任何参数也不返回任何参数

ios - URL 中的转义字符 - iOS Swift

swift - 在 ViewController 中处理菜单项操作

iphone - 在 UIWebView 内部使用 url 方案来更改 UILabel

ios - 上传视频到服务器

ios - 我的所有数据都没有存储在 Coredata 中

jquery - Cordova &jquery :value sent to another static html page

iOS 使用 detachNewThreadSelector 卡住和线程化