Swift Xib加载方式

作者: 小奉不在乎 | 来源:发表于2017-08-03 15:24 被阅读74次
0.新建加载工具类 NibLoadable.swift
3FC21C62-DF40-4777-AB44-2D50D4BC4A5A.png
import UIKit

// 协议
protocol NibLoadable {
    // 具体实现写到extension内
}

// 加载nib
extension NibLoadable where Self : UIView {
    static func loadFromNib(_ nibname : String? = nil) -> Self {
        let loadName = nibname == nil ? "\(self)" : nibname!
        return Bundle.main.loadNibNamed(loadName, owner: nil, options: nil)?.first as! Self
    }
}
1.新建DemoView
B672AE80-E05E-48A9-9027-64A6C2C1C391.png
2.新建xib文件(点击文件名会自动将名字补全)
C806390A-9CF0-4BE1-81DA-E0F2006F24F3.png
3.将xib与类名进行关联
A98EABAF-3A86-4239-8D7D-36CDEEFA01EC.png
4.在DemoView中遵循NibLoadable协议
import UIKit

class DemoView: UIView, NibLoadable {
    // 可自定义属性    
    var name : String = ""
}
5.然后就可以疯狂的搞事情了
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 加载demoview
        //方法一:
        let demoView = DemoView.loadFromNib()
        demoView.name = "why"
        view.addSubview(demoView)
        
        //方法二:
        let testView = TestView.loadFromNib("")
        testView.age = 10
        
        demoView.name = "why"
    }

}

相关文章

  • Swift Xib加载方式

    0.新建加载工具类 NibLoadable.swift 1.新建DemoView 2.新建xib文件(点击文件名会...

  • Bug-遇见-iOS

    加载xib 崩溃 1.正确的加载xib的方式加载ViewController 加载UIView

  • Swift Xib 加载 View 方式,Xib 加载多个Vi

    一、使用方法 本来直接使用 Bundle.main.loadNibNamed 方法就可以直接加载了,但是为了更方便...

  • xib文件使用

    xib用来描述一个View。一个xib文件可以描述多个View。 加载xib的加载方式一 方式二

  • 03-UI基础第3天

    一、xib文件 加载xib文件:xxx.xib --> 编译 --> xxx.nib 方式一: 方式二:

  • Swift 3.0 加载xib的方法

    // Swift 3.0 加载xib的方法return Bundle.main.loadNibNamed("类名"...

  • 加载控制器

    通过storyboard加载 通过加载xib的方式 loadView方法

  • 加载自定义bundle中资源

    bundle 存储资源(图片、xib、storyboard) 加载bundle有很多方式 .a静态库加载 动态库加载方式

  • UI控件相关

    图片的加载方式一(代码添加) 图片的加载方式二(xib加载) 图片的填充方式 Scale To Fill 按照大...

  • IOS UIImageView的加载图片方式

    图片的加载方式一(代码添加) 图片的加载方式二(xib添加图片) 图片的填充方式 Scale To Fill 按...

网友评论

    本文标题:Swift Xib加载方式

    本文链接:https://www.haomeiwen.com/subject/byeplxtx.html