標籤:
一、UIImageView 的 initWithImage:方法
1、問題 看到有人討論,為什麼這樣建立了一個UIImageView,會沒顯示,代碼如下: UIImageView * imageView = [[UIImageView alloc]init]; imageView.image = [UIImage imageNamed:@"icon.png"]; [self.view addSubview:imageView]; 第一眼看到這個問題,直觀的想這個View是沒有大小,肯定沒法顯示。後來才發現,原來用錯了應該要這樣用代碼如下:
UIImageView * imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"icon.png"]]; [self.view addSubview:imageView];
手動跑了下代碼,真是這樣,為什麼會用這種現象呢?
2、分析
分別用兩種方式建立了一個UIImageView,輸出了對應的屬性:1、用initWithImage:初始化 <UIImageView: 0x7fa1ca8225d0; frame = (0 0; 55 55); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7fa1c8ca2060>>2、用init初始化<UIImageView: 0x7f9b449aa030; frame = (0 0; 0 0); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7f9b4490cfa0>>
3、結論
initWithImage:初始化會自動的設定view的大小,init不會設定view的大小。 二、Local declaration of ‘XXX‘ hides instance variable 在寫代碼的時候看到一個代碼出現警告: 看了很久,發現原來是自己不小心重新聲明了一個和成員變數同名的變數,代碼如下: 總結:所以現在理解上面的警告資訊是說這個變數被覆蓋。
iOS-分享兩個小問題