自定義View的創(chuàng)建、添加、移除執(zhí)行過(guò)程分析

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
本文鏈接:https://yotrolz.com/posts/1e6befc2/


1.創(chuàng)建自定義view的類(lèi)文件

創(chuàng)建自定義view的類(lèi)文件.png

2.創(chuàng)建一個(gè)xib文件來(lái)表述自定義view(也可以通過(guò)代碼)

  • 創(chuàng)建一個(gè)xib文件


    創(chuàng)建一個(gè)xib文件.png
  • 設(shè)置xib文件名(xib文件名稱(chēng)和類(lèi)文件保持一致)

    設(shè)置xib文件名.png

  • 編輯xib文件:(綁定class、添加子控件)也就是給自定義的view添加幾個(gè)子控件這里我們添加了四個(gè)系統(tǒng)的控件(label、button、switch、textFiled)

    編輯xib文件.png

  • 聲明一個(gè)類(lèi)方法,快速創(chuàng)建一個(gè)自定義的view

    聲明類(lèi)方法.png

  • 實(shí)現(xiàn)類(lèi)方法


    實(shí)現(xiàn)類(lèi)方法.png
  • 創(chuàng)建一個(gè)自定義view(子控件)并添加到控制器的view(父控件)上面


    創(chuàng)建+添加自定義view.png
  • 問(wèn)題:為什么viewDidLoad函數(shù)執(zhí)行完畢后創(chuàng)建的customView對(duì)象沒(méi)有銷(xiāo)毀呢?
    :當(dāng)您通過(guò)addSubview:方法將一個(gè)視圖作為子視圖添加時(shí),父視圖會(huì)對(duì)其進(jìn)行保持操作。

  • 從控制器的view(父控件)上面移除自定義的view(子控件)


    移除自定義view.png
  • 調(diào)用removeFromSuperview方法,會(huì)自動(dòng)將自定義view對(duì)象銷(xiāo)毀.

  • 重寫(xiě)自定義view的dealloc方法,監(jiān)聽(tīng)其銷(xiāo)毀

    重寫(xiě)自定義view的dealloc.png

  • 官方對(duì)removeFromSuperview方法的說(shuō)明:

    removeFromSuperview1.png

    removeFromSuperview2.png

調(diào)用順序詳細(xì)說(shuō)明:

1.創(chuàng)建自定義view的時(shí)候

  • 創(chuàng)建自定義view


    創(chuàng)建自定義view.png
  • 重寫(xiě)didAddSubview:方法

    重寫(xiě)didAddSubview:.png

  • 調(diào)用順序


    執(zhí)行順序.png
  • 備注: - didAddSubview:方法會(huì)按照自定義view內(nèi)部的子控件循環(huán)調(diào)用

2.添加自定義view的時(shí)候

  • 添加自定義view


    添加自定義view.png
  • 重寫(xiě)相應(yīng)的方法,監(jiān)聽(tīng)其執(zhí)行順序


    重寫(xiě)添加時(shí)相應(yīng)的方法.png
  • 調(diào)用順序


    調(diào)用順序1.png

    調(diào)用順序2.png

3.從父控件移除自定義view(子控件)的時(shí)候

  • 移除自定義view


    移除自定義view.png
  • 重寫(xiě)相應(yīng)的方法,監(jiān)聽(tīng)其執(zhí)行順序


    執(zhí)行順序.png
  • 調(diào)用順序


    調(diào)用順序.png
  • 備注:- (void)willRemoveSubview:(UIView *)subview;會(huì)按照自定義view內(nèi)部的子控件循環(huán)調(diào)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容