美文网首页
swift使用类方法加载xib视图和awakeFromNib方法

swift使用类方法加载xib视图和awakeFromNib方法

作者: 桂宁813 | 来源:发表于2017-05-05 10:45 被阅读1012次

swift使用类方法加载xib视图和awakeFromNib方法调用顺序:
如下代码:

// MARK: - View LilfeCycle
    class func initView() -> DSComposeTypeView {
        // 从xib加载完成视图,就会调用awakeFromNib方法,此时frame是600 * 600
        let v = Bundle.main.loadNibNamed("DSComposeTypeView", owner: nil, options: nil)?.first as! DSComposeTypeView
        // XIB加载默认是 600*600
        v.frame = kScreen.bounds
    
        v.setupUI()
    
        return v
    }

    override func awakeFromNib() {
//        setupUI()
    }

结果一番测试,我们可以总结如下:如果自定义view和xib的view关联(苹果本身不推荐这种做法),初始化的时候是使用类方法来进行初始化;而类方法初始化的时候需要加载xib文件,这里面就会出现调用顺序的问题。从xib加载完视图,系统就会立即调用awakeFromNib方法,而此时nib文件中view的frame实际上是600*600的,是不正确的,如果要更改其frame,需要注意调用顺序。改进写法如下:

// MARK: - View LilfeCycle
    class func initView() -> DSComposeTypeView {
        // 从xib加载完成视图,就会调用awakeFromNib方法,此时frame是600 * 600
        return Bundle.main.loadNibNamed("DSComposeTypeView", owner: nil, options: nil)?.first as! DSComposeTypeView
    }

    override func awakeFromNib() {
        // XIB加载默认是 600*600
        frame = kScreen.bounds
    
        setupUI()
    }

相关文章

  • swift使用类方法加载xib视图和awakeFromNib方法

    swift使用类方法加载xib视图和awakeFromNib方法调用顺序:如下代码: 结果一番测试,我们可以总结如...

  • 觅食邦 开发总结

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

  • Swift 3.0 加载xib的方法

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

  • 关于程序启动时调用的几个方法

    -(void)awakeFromNib; // 这个方法,当一个对象从xib或者storyboard中加载完毕后,...

  • awakeFromNib和layoutSubView

    awakeFromNib awakeFromNib 从xib或者storyboard加载完毕就会调用 initWi...

  • 基类设计概述

    一、视图 注意点:1、纯代码创建试图,重写 initWithFrame: 方法就足够。2、XIB 加载视图,重写 ...

  • viewDidLoad

    无论是从xib文件中加载视图,还是自己创建视图,viewDidLoad方法都会被调用,而且都是在视图已经被加载后调...

  • UI-Xib

    Xib的加载 方法1 方法2 自定义控件view的步骤 新建自定义控件类 修改xib中view的类名 封装xib的...

  • xib中的frame

    使用XIB自定义cell,并且使用了Masonry,所以在awakeFromNib 方法中是拿不到正确的frame...

  • Swift 中加载 XIB 文件

    先来看看OC中直接加载 XIB 的方式 注意:1. 该方法是一个类方法;2. 需要将 XIB 中的所属类和类文件名...

网友评论

      本文标题:swift使用类方法加载xib视图和awakeFromNib方法

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