アセットカタログを使用していますが、さまざまなサイズのアプリアイコンをアセットに追加してもかまいません。
しかし、プログラムでUIImageを取得しようとすると、nilが返されました。
UIImage *appIcon = [UIImage imageNamed"AppIcon"];
アプリアイコンの名前はAppIcon
(デフォルト)で、実際のファイルはapp-icon-256.png
などです。
また、通常の画像とは異なり、アプリアイコンはAppIcon.appiconset
ディレクトリの「アプリアイコン」セットに含まれていることにも気付きました。通常の画像はsomeimage.imageset
ディレクトリにあります。
問題は、アセットカタログのAppIconがコンパイル後にカタログに配置されないことです。以前と同じように、それはあなたのアプリのバンドルにコピーされたと述べた。
アイコンをApp Bundleにコピーするときに使用される名前変換はAppIcon<size>.png
、たとえばサイズは40x40
または72x72
必要なアプリアイコンのサイズを指定して、アプリアイコンを取得できます。
UIImage *appIcon = [UIImage imageNamed:@"AppIcon40x40"];