許多 iOS 初學者會遇到這種情況:在 Storyboard 中為 UIImageView 設置 image 屬性選擇 lenna.png 時圖片正常顯示,但改用代碼 self.imgView.image = [UIImage imageNamed:@"lenna.png"]; 卻顯示空白。
lenna.png 實際存在於專案的 Assets.xcassets 或 Bundle Resources 中。// 推薦寫法:PNG 可省略後綴
[UIImage imageNamed:@"lenna"];
// JPG 或其他格式必須帶後綴
[UIImage imageNamed:@"photo.jpg"];
@property (weak, nonatomic) IBOutlet UIImageView *imgView; 左側圓點是否實心(表示已連接)。imgView 為 nil,發送消息無效。viewDidLoad 中設置,確認 imgView 已加載完成(Storyboard/XIB 加載時會自動連接)。imgView.contentMode = UIViewContentModeScaleAspectFit; 適配。imgView.hidden 或 alpha 是否被誤設置。// 1. 斷點檢查對象是否為 nil
NSLog(@"imgView: %@", self.imgView);
NSLog(@"image: %@", [UIImage imageNamed:@"lenna"]);
// 2. 嘗試直接用 imageWithContentsOfFile 排除緩存問題
NSString *path = [[NSBundle mainBundle] pathForResource:@"lenna" ofType:@"png"];
UIImage *img = [UIImage imageWithContentsOfFile:path];
self.imgView.image = img;
90% 的情況是 資源未正確添加、名稱大小寫不匹配 或 Outlet 斷連。按清單逐項排查通常能秒解。