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

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)用



















