いくつかのシナリオでは、アプリのアイコン名とスタートアップ画像の名前を取得する必要がある場合があります。たとえば、アプリが前景にある場合、リモート通知が受信されますが、通知バーに通知リマインダーはありません。この時点で、シミュレートされた通知プロンプトを作成したいので、アイコン名を使用する必要があります。たとえば、特定のコントローラーをロードするときは、コントローラーの背景画像をスタートアップ画像として設定したいので、起動画像名を使用する必要があります。
実際、アイコンイメージはSystem Appiconフォルダーに配置されており、起動画像はシステムLaunchImageフォルダーに配置されます。これらの画像の名前は、他の一般的なリソース画像の名前とは異なります。
例を挙げると、シンプルでラフにしましょう。
現在のプロジェクトがiPhoneデバイスのみをサポートし、垂直画面のみをサポートしているとします。また、Appiconアイコンとスタートアップ画像は現在のプロジェクトに設定されています。
アイコンアイコン名とスタートアップの画像名を取得するにはどうすればよいですか?
コードでログを印刷します:
/**アプリのアイコンアイコン名を取得*/ - (void)getappiconname {nsdictionary*infodict = [[nsbundle mainbundle] infodictionary]; infodict [@"cfbundleicons"] [@"cfbundleprimaryicon"] [@"cfbundleconfiles"]; //最後のアイコン名nsstring *iconsarlastname = [iconsarr lastobject]; //アイコン名nslog(@"iconsarr: %@"、iconlaunchname);/*print log:iconsarr :( appicon29x29、appicon40x40、appicon60x60)iconlastname:appicon60x60*/}/**アプリのスタートアップイメージの名前を取得し、このコントローラーのgetlingmenmeの背景画像に設定します。 *LaunchImageName = @""; //画像名変数を開始するCGFLOAT SCREANHEIGHT = [UISCREEN MAINSCREEN] .BOUNDS.SIZE.HEIGHT; // SCREANHEIGHT == 480){// 4、4SlaunchImageName = @"LaunchImage-700"; iPodlaunchimageName = @"laintingimage-700-568h";} else if(screenheight == 667){// 6、6SlaunchimageName = @"launchimage-800-667h";} @"LaunchImage-800-Landscape-736H";} if(launchimagename.length <1)return; //デバイス起動画像は、コントローラーuiimage *img = [uiimage imageName:launchImageName]の背景画像です。 self.view.backgroundcolor = [uicolor colorwithpatternimage:img]; }現在iPhoneデバイスのみをサポートしており、垂直画面シーンのみをサポートしているすべてのスタートアップ画像情報を印刷してください。
/**アプリにすべてのスタートアップ画像名情報を印刷*/ - (void)printalllaunchimageinfo {nsdictionary*infodict = [[nsbundle mainbundle] infodictionary]; //すべてのスタートアップ画像情報配列nsarray *launchimagesarr = infodict [@"uilaunchimages"]; nslog(@"LaunchImagesArr:%@"、launchimagesArr); /*ログの印刷:スタートアップ画像の名前はlaintingimagesArr:({uilaunchimageminimumsversion = "8.0"; uilaunchimageName = "launchimage-800-portrait-736h"; uilaunchimageorientation = porated; uilaunchimagesize = "{414、736}"; uilaunchiminimumsversion = "8.0" 「Launch-800-667H」 480} ";}、{uilaunchimageminimusversion =" 7.0 "; uilaunchimageName =" laintingimage-700-568h "; uilaunchimageorientation = portate; [[nsbundle mainbundle] infodictionary]からプロジェクトAppiconアイコンとスタートアップの画像情報が取得できることを確認しました。また、バージョン、アプリ名、デバイスタイプ、サポートの方向など、アプリに関する他の情報も含まれています。 。 。
表示するすべての情報を印刷してください。
/**アプリプロジェクトの構成情報を印刷*/ - (void)printinfodictionary {nsdictionary*infodict = [[nsbundle mainbundle] infodictionary]; nslog(@"%@"、infodict); /*ログを印刷:{buildmachineosbuild = 15g31; cfbundledevelopmentRegion = en; cfbundleexecutable = tantest; cfbundleicons = {cfbundleprimaryicon = {cfbundleiconfiles =(appicon29x29、appicon40x40、appicon60x60); }; }; cfbundleidentifier = "net.tan.xxx"; cfbundleinfodictionaryversion = "6.0"; cfbundleinfoplisturl = "info.plist- file:/// users/px/library/developer/coresimulator/devices/7020368b-c160-42c0-b3c5-5f958fa82 ef5/data/containers/bundle/application/77d8c333-a6af-4183-b79a-a5bedcd08e1a/tantest.app/"; cfbundlename = tantest; cfbundlenumericversion = 16809984; cfbundlepackageType = appl; cfbundleshortversionstring = "1.0"; cfbundlesignature = "????"; cfbundlesupportedplatforms =(iphonesimulator); cfbundleversion = 1; dtcompiler = "com.apple.compilers.llvm.clang.1_0"; dtplatformbuild = ""; dtplatformname = iphonesimulator; dtplatformversion = "9.3"; dtsdkbuild = 13e230; dtsdkname = "iphonesimulator9.3"; dtxcode = 0731; dtxcodeBuild = 7d1014; lsrequiresiphoneos = 1; MinimutSversion = "6.0"; uidevicefamily =(); uilaunchimagefile = launchimage; uilaunchimages =({uilaunchimageminimumsversion = "8.0"; uilaunchimageName = "laintingimage-800-portrait-736h"; uilaunchimageorientation = portaid; uilaunchimagesize = "{414、736}";} uilaunchimageName = "LaunchImage-800-Landscape-736H"; uilaunchimage = "{375、667}}。 uilaunchiminimumsversion = "7.0" uilaunchstoryboardname = launchscreen; uimainstoryboardfile = main; uirequireddeviceCapability =(armv7); uisupportedinterfaceorientations =(uiinterfaceorientationportrait); } */} --------次に、アプリがiPhoneデバイスとiPadデバイスの両方をサポートするとき、および水平および垂直の画面をサポートするときに、AppiconとLaunchimageがどのように様子か、どのように取得するかを見てみましょう。
まず、2つの写真を追加してから、テストコードを追加します。
テストコード:
1. Appiconのすべてのアイコンアイコン名を取得します
/** iPhoneとiPadをサポートし、アプリのアイコンアイコン名を取得 */ - (void)getAppiconname {nsDictionary *infodict = [[nsbundle mainbundle] infodictionary]; //アプリですべてのアイコン名を取得nsarray *iconsarr = infodict [@"cfbundleicons"] [@"cfbundleprimaryicon"] [@"cfbundleiconfiles"]; //最後のアイコン名nsstring *iconlastname = [iconsarr lastObject]; //アイコン名nslog(@"iconsArr:%@"、iconsArr)を印刷します。 nslog(@"iconlastname:%@"、iconlastname); / *ログの印刷(29ptおよび40ポンドのiPhoneとiPadが使用されます; 60pt --- iPhone、76ptおよび83.5pt --- iPad):(appicon29x29、appicon40x40、appicon60x60、appicon76x76、 "appicon83.53.5")iconlastramame 2。iPhoneとiPadの開発をサポートするときに起動画像を取得し、水平画面と垂直画面をサポートし、背景画像コードとして設定します。
(iPhoneデバイスにはPlusに2つの写真のみがあります。つまり、5.5インチ、その他の4、5、および6つの垂直画面はスタートアップ画像を共有しています)
/** iPhoneとiPadをサポートし、水平面と垂直画面をサポートし、アプリの起動画像の名前を取得し、このコントローラーの背景画像に設定します*/ - (void)getLaunchImageName {nsString*launchimagename = @""; //画像名を開始変数cgfloat screenheight = [uiscreen Mainscreen] .bounds.size.height; //スクリーン高さcgfloat screenwidth = [uiscreen mainscreen] .bounds.size.width; //画面幅//デバイスインターフェイスの方向UIINTERFACEORIENTATION ORIENTITION = [UIAPPLICATION SHAREEDAPPLICATION] .STATUSBARORIENTATION; bool isportrait = uiinterfaceorientationisportrait(方向); //垂直スクリーンの島の島を持っているかどうか= uiinterfaceorientationslandscape(方向); (IslandScape && screenWidth == 480)){launchimageName = @"laintImage-700"; } // 5、5c、5s、iPodの垂直画面、水平面画面else if((isportrait && screenheight == 568)||(raintImageName = @"launchimage-700-568h"; } // 6、6S垂直画面、水平面画面else if((isportrait && screenheight == 667)||(raunchimageName = @"launchimage-800-667h"; } // 6plus、6splus Vertical Screen else if(isportrait && screenheight == 736){launchimagename = @"laintingimage-800-portrait-736h"; } // 6plus、6splus horizontal screen else if(yansildscape && screenwidth == 736){launchimageName = @"laintingimage-800-landscape-736h"; } // iPad Vertical Screen else if(isportrait && screenheight == 1024){LaunchImageName = @"LaunchImage-700-Portrait"; } // iPad horizontal screen else if(yansildscape && screenWidth == 1024){launchimageName = @"laintInimage-700-landscape"; } if(launchimageName.length <1)return; //デバイスの起動画像は、コントローラーuiimageの背景画像 *img = [uiimage imagenamed:launchimagename]; self.view.backgroundcolor = [uicolor colorwithpatternimage:img];}3.すべてのスタートアップ画像情報を印刷します
/**アプリにすべてのスタートアップ画像名情報を印刷*/ - (void)printalllaunchimageinfo {nsdictionary*infodict = [[nsbundle mainbundle] infodictionary]; //すべてのスタートアップ画像情報配列nsarray *launchimagesarr = infodict [@"uilaunchimages"]; nslog(@"LaunchImagesArr:%@"、launchimagesArr); /*ログの印刷:スタートアップ画像の名前はlaintingimagesArr:({uilaunchimageminimumsversion = "8.0"; uilaunchimageName = "launchimage-800-portrait-736h"; uilaunchimageorientation = porated; uilaunchimagesize = "{414、736}"; uilaunchiminimumsversion = "8.0" 「Launch-800-667H」 480} ";}、{uilaunchimageminimusversion =" 7.0 "; uilaunchimageName =" laintingimage-700-568h "; uilaunchimageorientation = portate; uilaunchimageName = "launchimage-700-portrait"; uilaunchimagesize = "{768、1024}"; }、{uilaunchimageminimusversion = "7.0"; uilaunchimageName = "launchimage-700-landscape"; uilaunchimageorientation = landscape; uilaunchimagesize = "{768、1024}"; }) */} 4.すべての構成情報を印刷します
/**アプリプロジェクトの構成情報を印刷*/ - (void)printinfodictionary {nsdictionary*infodict = [[nsbundle mainbundle] infodictionary]; nslog(@"%@"、infodict); /*ログを印刷:{buildmachineosbuild = 15g31; cfbundledevelopmentRegion = en; cfbundleexecutable = tantest; cfbundleicons = {cfbundleprimaryicon = {cfbundleconfiles =(appicon29x29、appicon40x40、appicon60x60、appicon76x76、 "appicon83.5x83.5"); }; }; cfbundleidentifier = "net.tan.xxx"; cfbundleinfodictionaryversion = "6.0"; cfbundleinfoplisturl = "info.plist- file:/// users/px/library/developer/coresimulator/devices/3246f9ae-1d73-4e4f-8ddf-f591dbe64 f63/data/containers/bundle/application/7dd6c793-f882-43cf-9897-1433411289e6/tantest.app/"; cfbundlename = tantest; cfbundlenumericversion = 16809984; cfbundlepackageType = appl; cfbundleshortversionstring = "1.0"; cfbundlesignature = "????"; cfbundlesupportedplatforms =(iphonesimulator); cfbundleversion = 1; dtcompiler = "com.apple.compilers.llvm.clang.1_0"; dtplatformbuild = ""; dtplatformname = iphonesimulator; dtplatformversion = "9.3"; dtsdkbuild = 13e230; dtsdkname = "iphonesimulator9.3"; dtxcode = 0731; dtxcodeBuild = 7d1014; lsrequiresiphoneos = 1; MinimutSversion = "9.0"; uidevicefamily =(1、); uilaunchimagefile = launchimage; uilaunchimages =({uilaunchimageminimumsversion = "8.0"; uilaunchimageName = "laintingimage-800-portrait-736h"; uilaunchimageorientation = portaid; uilaunchimagesize = "{414、736}";} uilaunchimageName = "LaunchImage-800-Landscape-736H"; uilaunchimage = "{375、667}}。 uilaunchiminimumsversion = "7.0" 「LaunchImage-700-Portrait」; uilaunchimageName = "launchimage-700-landscape"; uilaunchimageorientation = landscape; uilaunchimagesize = "{768、1024}"; }); uilaunchstoryboardname = launchscreen; uimainstoryboardfile = main; uirequireddeviceCapability =(armv7); uisupportedinterfaceorientations =(uiinterfaceorientationportrait、uiinterfaceorientationlandscapeleft、uiinterfaceorientationlandscaperight); }*/}上記は、編集者が紹介したiOS AppiconとLaunchImageの名前(アプリアイコンと起動画像名)です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!