亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS UIView的生命周期的實例詳解

2020-07-26 02:41:55
字體:
來源:轉載
供稿:網友

IOS UIView的生命周期的實例詳解

任何對象的者有一個生命周期,即都存在一個實例化到銷毀的過程。

UIView對象也不例外,那么UIView從init/new開始后,直到dealloc結束的過程中都經歷了哪些過程呢?

首先自定義繼承自UIView的對象LifeView

#import <UIKit/UIKit.h>  @interface LifeView : UIView  @end 
#import "LifeView.h"  @interface LifeView () {   NSInteger count; }  @end  @implementation LifeView  - (instancetype)initWithFrame:(CGRect)frame {   self = [super initWithFrame:frame];   if (self)   {     NSLog(@"<-- 1 %s , count = %@-->", __func__, @(count++));   }   return self; }   - (void)willMoveToSuperview:(nullable UIView *)newSuperview {   NSLog(@"<-- 2 %s , count = %@-->", __func__, @(count++)); }  - (void)didMoveToSuperview {   NSLog(@"<-- 3 %s , count = %@-->", __func__, @(count++)); }  - (void)willMoveToWindow:(nullable UIWindow *)newWindow {   NSLog(@"<-- 4/7 %s , count = %@-->", __func__, @(count++)); }  - (void)didMoveToWindow {   NSLog(@"<-- 5/8 %s , count = %@-->", __func__, @(count++)); }  - (void)layoutSubviews {   NSLog(@"<-- 6 %s , count = %@-->", __func__, @(count++)); }  - (void)removeFromSuperview {   NSLog(@"<-- 9 %s , count = %@-->", __func__, @(count++)); }  - (void)dealloc {   NSLog(@"<-- 10 %s , count = %@-->", __func__, @(count++)); }  @end 

其次,在B視圖控制器中實例化,并添加到父視圖

- (void)viewDidLoad {   [super viewDidLoad];   // Do any additional setup after loading the view.      self.title = @"life view";      LifeView *lifeView = [[LifeView alloc] initWithFrame:CGRectMake(10.0, 80.0, 100.0, 100.0)];   [self.view addSubview:lifeView];   lifeView.tag = 1000;   lifeView.backgroundColor = [UIColor orangeColor]; } 

當B視圖控制器被push,或present出來時,被調用的LifeView的相關方法,如下所示:

// 實例化時 2017-06-16 00:37:10.694 DemoViewLife[3963:121184] <-- 1 -[LifeView initWithFrame:] , count = 0--> 2017-06-16 00:37:10.695 DemoViewLife[3963:121184] <-- 2 -[LifeView willMoveToSuperview:] , count = 1--> 2017-06-16 00:37:10.695 DemoViewLife[3963:121184] <-- 3 -[LifeView didMoveToSuperview] , count = 2--> 2017-06-16 00:37:10.697 DemoViewLife[3963:121184] <-- 4/7 -[LifeView willMoveToWindow:] , count = 3--> 2017-06-16 00:37:10.697 DemoViewLife[3963:121184] <-- 5/8 -[LifeView didMoveToWindow] , count = 4--> 2017-06-16 00:37:10.701 DemoViewLife[3963:121184] <-- 6 -[LifeView layoutSubviews] , count = 5--> 

當B視圖控制器被pop,或dismiss時,被調用的LifeView的相關方法,如下所示:

// 銷毀時 2017-06-16 00:37:25.514 DemoViewLife[3963:121184] <-- 4/7 -[LifeView willMoveToWindow:] , count = 6--> 2017-06-16 00:37:25.514 DemoViewLife[3963:121184] <-- 5/8 -[LifeView didMoveToWindow] , count = 7--> 2017-06-16 00:37:25.515 DemoViewLife[3963:121184] <-- 9 -[LifeView removeFromSuperview] , count = 8--> 2017-06-16 00:37:25.516 DemoViewLife[3963:121184] <-- 9 -[LifeView removeFromSuperview] , count = 9--> 2017-06-16 00:37:25.518 DemoViewLife[3963:121184] <-- 10 -[LifeView dealloc] , count = 10--> 

從打印信息可以看到方法"removeFromSuperview"被調用了兩次,這是因為在B視圖控制器中,主動調用了該方法。如果沒有主動調用該方法的話,只會被調用一次。

另外被執行過兩次的方法還有"willMoveToWindow"和"didMoveToWindow"。我們可以很好地進行區分,當newWindow存在時,則是實例化創建被第一次調用;而當newWindow為nil時,則是被銷毀了,即結束生命周期。

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美亚洲一二三区| 久久久久久久久久久成人| 久久久99免费视频| 久久成年人免费电影| 欧美成年人在线观看| 国产精品成熟老女人| 欧美电影在线观看完整版| 亚洲国产婷婷香蕉久久久久久| 亚洲精品一区二区在线| 欧美亚洲成人xxx| 欧美美女操人视频| 韩国欧美亚洲国产| 性色av香蕉一区二区| 国模gogo一区二区大胆私拍| 亚洲无限乱码一二三四麻| 国产一区二区三区欧美| 久久久国产精彩视频美女艺术照福利| 国产精品第100页| 欧美在线激情视频| 最新国产精品亚洲| 少妇高潮久久久久久潘金莲| 久久成人精品一区二区三区| 国产一区欧美二区三区| 中文字幕日韩电影| 91av免费观看91av精品在线| 国产成人精品av在线| 国产精品丝袜视频| 91高潮在线观看| 国产美女久久久| 5278欧美一区二区三区| 国产成人精品免高潮在线观看| 4k岛国日韩精品**专区| 亚洲九九九在线观看| 热99久久精品| 亚洲一区二区三区视频播放| 日韩资源在线观看| 亚洲一区二区三区四区在线播放| 亚洲最大的av网站| 欧美高清在线观看| 午夜精品久久17c| 欧美在线xxx| 欧美专区第一页| 久久99热这里只有精品国产| 另类少妇人与禽zozz0性伦| 欧美日韩亚洲高清| 中文字幕日韩免费视频| 日韩有码在线播放| 国产成人精品日本亚洲专区61| 国产精品国产福利国产秒拍| 日韩av电影手机在线观看| 中文字幕一精品亚洲无线一区| 97免费视频在线播放| 97精品视频在线播放| 成人久久精品视频| 日韩欧美国产高清91| 日韩免费在线电影| 欧美一区第一页| 国产精品久久久久国产a级| 国产美女精品免费电影| 日韩a**中文字幕| 性欧美激情精品| 91大神福利视频在线| 久久6免费高清热精品| 在线不卡国产精品| xxxx欧美18另类的高清| 91免费看视频.| 97视频免费在线看| 国产日韩欧美91| 亚洲免费一在线| 精品国产区一区二区三区在线观看| 亚洲天堂视频在线观看| 亚洲人永久免费| 成人黄在线观看| 日韩欧美一区二区在线| 亚洲精品一区av在线播放| 久久中文字幕在线视频| 精品国产鲁一鲁一区二区张丽| 欧美xxxwww| 午夜精品福利在线观看| 久久久人成影片一区二区三区观看| 欧美日韩免费观看中文| 538国产精品一区二区在线| 日韩中文在线中文网在线观看| 伊人男人综合视频网| 91精品国产综合久久久久久久久| 成人在线视频网站| 美女啪啪无遮挡免费久久网站| 国产精品永久免费在线| 国产精品视频1区| 国产午夜精品麻豆| 欧美夜福利tv在线| 国产日韩欧美自拍| 日韩第一页在线| 97在线精品国自产拍中文| 欧美国产日韩中文字幕在线| 亚洲天堂免费视频| 欧美又大又硬又粗bbbbb| 久久久久久国产免费| 日韩成人av在线播放| 欧美日韩国产在线看| 亚洲人成网7777777国产| 欧美一级视频在线观看| 欧美激情区在线播放| 97人洗澡人人免费公开视频碰碰碰| 日韩久久午夜影院| 日本午夜精品理论片a级appf发布| 国产精品视频免费在线观看| 国产亚洲视频在线| 欧美日韩美女在线| 日本免费在线精品| 丝袜一区二区三区| 欧美成人精品一区二区三区| 91在线观看免费高清完整版在线观看| 欧美网站在线观看| 在线成人激情视频| 久久这里有精品视频| xxxxx成人.com| 色妞一区二区三区| 国产中文字幕亚洲| 国产精品亚发布| 欧美性xxxxxxx| 久久精品欧美视频| 日韩欧美综合在线视频| 欧美性猛交xxxx久久久| 亚洲老板91色精品久久| 欧美日韩免费在线| 国产一区二区三区在线| 亚洲伊人久久大香线蕉av| 欧美成人午夜激情视频| 亚洲人成网站999久久久综合| 成人中文字幕在线观看| 91久久精品国产| 国产成人拍精品视频午夜网站| 91精品国产综合久久香蕉| 欧美性videos高清精品| 国产主播欧美精品| 国产日韩换脸av一区在线观看| 国内精品国产三级国产在线专| 欧美日韩成人在线观看| 亚洲精品在线91| 亚洲国产私拍精品国模在线观看| 精品久久久久久久久久久| 欧美精品在线免费| 日日狠狠久久偷偷四色综合免费| 最近2019年好看中文字幕视频| 午夜免费日韩视频| 欧美成人剧情片在线观看| 久久久久99精品久久久久| 国产精品一区二区三区毛片淫片| 成人免费激情视频| 久久久久久免费精品| 欧美日本精品在线| 国产精品女视频| 这里只有精品久久| 人体精品一二三区| 97国产精品视频人人做人人爱| 成人免费网视频| 亚洲免费av电影| 91在线免费视频| 66m—66摸成人免费视频| 国产精品对白刺激| 国产亚洲视频在线观看| 日韩毛片在线观看| 91成品人片a无限观看|