美文网首页
使用协议方法加载XIB

使用协议方法加载XIB

作者: BYQiu | 来源:发表于2017-05-05 14:21 被阅读30次

面向协议的方法

创建协议 NibLoadProtocol.swift

import Foundation

protocol NibLoadProtocol {
    
}

extension NibLoadProtocol where Self : UIView {
    //在协议里面不允许定义class 只能定义static
    static func loadFromNib(_ nibname: String? = nil) -> Self {//Self (大写) 当前类对象
        //self(小写) 当前对象
        let loadName = nibname == nil ? "\(self)" : nibname!
        
        return Bundle.main.loadNibNamed(loadName, owner: nil, options: nil)?.first as! Self
    }
}

遵守协议

import UIKit

class MyView: UIView, NibLoadProtocol {
}

使用

// xib文件与 类名同名 的情况
let demoView = DemoView.loadFromNib()


// xib文件与 类名不相同 的情况
let testV = TestView.loadFromNib("TestView0")

相关文章

  • 使用协议方法加载XIB

    面向协议的方法 创建协议 NibLoadProtocol.swift 遵守协议 使用

  • Swift SnapKit获取真实frame

    一.通过协议方法款速加载xib中的view1.首先创建对应的xib和view文件2.创建协议文件,NibLoad....

  • Swift3之面向协议开发

    用面向协议加载xib 创建一个协议类NibLoadable 假如HintCoverView从xib那边加载那么只需...

  • 觅食邦 开发总结

    XIB 加载要点 通过xib加载view会调用- (void)awakeFromNib方法 xib加载view,点...

  • iOS UIViewController和UIView不同加载方

    加载UIViewController 通过XIB加载。 通过StoryBoard加载。 通过NSCoding协议加...

  • 使用协议XIB加载View

  • iOS知识点

    // 当XIB 中的文件加载完成会调用此方法 xib 存储在硬盘中。 当你没有使用的时候它是不会加载到内存的。当你...

  • 04-UI基础第4天

    一、xib文件的加载过程 默认调用init方法后,自动调用initWithFrame方法 xib的加载不会调用in...

  • xib中嵌套使用xib

    在xib中嵌套使用xib,如果使用不正确会导致子xib最后加载不出来(具体原因可以查看第一篇参考文章)。可行的方法...

  • xib中嵌套使用xib

    在xib中嵌套使用xib,如果使用不正确会导致子xib最后加载不出来(具体原因可以查看第一篇参考文章)。可行的方法...

网友评论

      本文标题:使用协议方法加载XIB

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