美文网首页
initWithFrame&initWithCoder的

initWithFrame&initWithCoder的

作者: 猪队友小L | 来源:发表于2017-08-18 17:09 被阅读5次

    万能初始化函数

    所有初始化方法都会最终的调用两个方法来初始化

    1. initWithFrame:通过代码创建的View最终都会调用这个

    2. initWtthCoder:通过文件创建的最终都会调用这个

    init调用的哪个

    init属于通过代码创建View,会去调用initWithFrame:frame,其中frame为(0,0,0,0)

    通过文件创建的是什么

    通过文件创建是指xib和storyboard的initWithNibName

    调用顺序是initWithNibName先调用awakeFromNib,然后awakeFromNib会去从本地文件进行unarchive(解档),unarchvie会去调用initWtthCoder

    通过文件创建的实质

    通过文件创建实质是加载了本地文件,进行了一系列的解压缩(unarchive 解档)操作,所以说才触发了解档函数initWtthCoder

    堵死一个View的初始化

    如果要堵死初始化,只需要在自定义View里重写好initWithFrame&initWithCoder就可以了,不管是如何创建

    initWithCoder的常规用途

    因为实质是解档功能,所以initWithCoder两个用处:

    1. 只在xib和storyboard时,会在加载完视图后执行
    2. 归档解挡时重写 所以一般和encoder只用于重写 不用于调用

    相关文章

      网友评论

          本文标题:initWithFrame&initWithCoder的

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