В некотором сценарии, возможно, нам потребуется название значка приложения и название изображения стартапа. Например, когда приложение находится на переднем плане, оно получает удаленное уведомление, но в панели уведомлений не будет напоминания об уведомлении. В настоящее время я хочу сделать моделируемую подсказку уведомления, и мне нужно использовать имя значка; Например, при загрузке определенного контроллера я хочу установить фоновое изображение контроллера в качестве изображения стартапа, и мне нужно использовать имя изображения запуска.
Фактически, изображение значка помещается в папку System Appicon, а изображение запуска помещается в папку System Launchimage. Названия этих изображений отличаются от имени других общих изображений ресурсов.
Чтобы привести примеры, давайте будем простыми и грубыми.
Предположим, что текущий проект поддерживает только устройства iPhone и поддерживает только вертикальные экраны; и значок Appicon и изображение стартапа были установлены в текущем проекте.
Как получить название значка и имя изображения запуска?
На коде и распечатайте журнал:
/** Получите имя значка приложения*/- (void) getAppiconname {nsdictionary*Infodict = [[nsbundle bainbundle] Infoditionary]; // Получить все имена значков в приложении nsarray*iconsarr = Infodict [@"cfbundleicons"] [@"cfbundleprimaryicon"] [@"cfbundleiconfiles"]; // Получить последнее имя значка nsstring *iconlastname = [iConsarr LastObject]; // Печать имени значка nslog (@"iconsarr: %@", iconsarr); iConlaunchName);/*Журнал печати: IconsArr: (Appicon29x29, Appicon40x40, Appicon60x60) IconlastName: Appicon60x60*/}/** Получить имя стартап-изображения и установить его на фоновое изображение. @""; // Начало Имя Имя переменной CGFLOAT ScreenHeight = [USISCREEN MANICSCREEN] .BOUNDS.Size.Height; // Получить имя изображения запуска, соответствующее текущему устройству IF (ScreenHeight == 480) {// 4, 4SlaunchImageMage = @"Записки-700"; iPodlaunchImageName = @"launchimage-700-568H";} else if (screenHeight == 667) {// 6, 6SlaunchImageName = @"Записка-800-667H";} else if (screenHeight == 736) {// 6plus, 6spluslaUnkimAmageAme == 736) {// 6plus, 6SpluslaUncemageMageMageAmeAme = @"Запискаммаж-800-landscape-736H";} if (stamniMageName.length <1) return; // Изображение запуска устройства-это фоновое изображение контроллера uiimage *img = [uiimage ImageNamed: lapingImageName]; self.view.backgroundcolor = [uicolor colorwithpatternimage: img]; }Распечатайте всю информацию о изображении запуска, которая в настоящее время поддерживает только устройства iPhone и поддерживает только вертикальные сцены экрана:
/** Распечатайте все ИМЕНИМА ИМЕНИЯ ИЗОБРАЖЕНИЯ В приложении*/- (void) printalllaunchimageinfo {nsdictionary*Infodict = [[nsbundle bainbundle] Infoditionary]; // Получить все информационные изображения запуска массив nsarray *launchimagesarr = Infodict [@"uilaunchimages"]; Nslog (@"launchimagesarr: %@", launchimagesarr); /* Журнал печати: Имя изображения запуска является фиксированным запусковным имером: ({uilaunchimageminimumosversion = "8.0"; uilaunchimageName = "launchimage-800-portrait-736h"; uilaunchimageoratation = portrait; uilaunchimages = "{414, 736}"; Uilaunchimageminimumosversion = "8.0"; "Запускам-800-667H"; 480} ";}, {uilaunchimageminimumosversion =" 7.0 "; uilaunchimageName =" launchimage-700-568h "; uilaunchimageoratation = portrait; uilaunchUnchImages =" {320, 568} ";}) */} Я видел, что значок проекта Appicon и информацию о стартовых изображениях может быть получена из [[NSBundle Mainbundle] Infoditionary]. Он также содержит другую информацию о приложении, такой как версия, имя приложения, тип устройства и направление поддержки. Полем Полем
Распечатайте всю информацию, чтобы увидеть:
/** Информация о конфигурации проекта Print App*/- (void) printInfodictionary {nsdictionary*Infodict = [[nsbundle bainbundle] Infoditionary]; Nslog (@"%@", Infodict); /* Печатный журнал: {buildmachineosbuild = 15G31; CfbundeLevelopmentRegion = en; Cfbundleexecutable = tantest; Cfbundleicons = {cfbundleprimaryicon = {cfbundleiconfiles = (appicon29x29, appicon40x40, appicon60x60); }; }; Cfbundleidietifier = "net.tan.xxx"; Cfbundleinfodictionaryversion = "6.0"; Cfbundleinfoplisturl = "info.plist - file:///Users/PX/Library/Developer/CoreSimulator/Devices/7020368B-C160-42C0-B3C5-5F958FA82EF5/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; MinimumOsversion = "6.0"; Uidevicefamily = (); Uilaunchimagefile = launchimage; Uilaunchimages = ({uilaunchimageminimumosversion = "8.0"; uilaunchimageName = "запускамажа-800-portrait-736h"; uilaunchimageoratation = portait; uilaunchimagesize = "{414, 736}"; UilaunchimageName = "Запускам-800-landscape-736H"; Uilaunceoration = портрет; Uilaunchimageminimumosversion = "7.0"; Uilaunchstoryboardname = LaunchCreen; Uimainstoryboardfile = main; UirequiredDeviceCapabilities = (ARMV7); UisupportedInterfaceOrientations = (uiinterfaceorientationportrait); } */} --------- Далее, давайте посмотрим, как Appicon и Launchimage похожи и как получить, когда приложение поддерживает как iPhone, так и iPad устройства, а также горизонтальные и вертикальные экраны.
Сначала добавьте две картинки, а затем добавьте тестовый код:
Тестовый код:
1. Получите все имена значков Appicon
/** Поддержите iPhone и iPad, получите имя значка приложения */- (void) getAppiconname {nsdictionary *Infodict = [[nsbundle bainbundle] Infoditionary]; // Получить все имена значков в приложении nsarray *iconsarr = Infodict [@"cfbundleicons"] [@"cfbundleprimaryicon"] [@"cfbundleiconfiles"]; // Получить последнее имя значка nsstring *iConlastName = [iConsArr LastObject]; // распечатать имя значка NSLOG (@"ICONSARR: %@", iConsArr); Nslog (@"IconlastName: %@", iConlastName); / * Журналы печати (29pt и 40pt iPhone и iPad используются; 60pt --- iPhone, 76pt и 83.5pt --- iPad): IconsArr: (appicon29x29, appicon40x40, appicon60x60, appicon76x76, "appicon83.53.5") IconlastNam 2. Получите картинку запуска при поддержке разработки iPhone и iPad и поддерживает горизонтальные и вертикальные экраны и установите его в качестве фонового кода изображения.
(Устройство iPhone имеет только два набора изображений на плюс, то есть 5,5 дюйма, а остальные 4, 5 и 6 вертикальных экранов имеют картинку запуска).
/** Поддержите iPhone и iPad, поддерживайте горизонтальные и вертикальные экраны, получите имя запуска изображения приложения и установите его на фоновое изображение этого контроллера*/- (void) getLaunchimageName {nsString*Записование @ @""; // Начало Имя изображения переменная cgfloat screenHeight = [uiscreen mainscreen] .bounds.size.height; // Высота экрана CGFLOAT ScreenWidth = [Mainscreen USISCREEN] .bounds.size.width; // ширина экрана // Ориентация интерфейса устройства uiInterfaceorientation ориентация = [uiApplication sharedApplication] .statusbarorientation; Bool isportrait = uiInterfaceoratationSisportrait (ориентация); // Будь то вертикальный экран Bool IslandScape = uiinterfaceorationSlandScape (Orientation); // где иметь горизонтальный экран // Получить имя изображения, которое соответствует нынешнему устройству // 4S 4S -экране). ||. } // 5, 5c, 5s, вертикальный экран iPod, горизонтальный экран else if ((isportrait && screenHeight == 568) || (IslandScape && screenwidth == 568)) {ungainMageName = @"Записки-700-568H"; } // 6, 6s вертикальный экран, горизонтальный экран else if ((isportrait && screenHeight == 667) || (IslandScape && ScreenWidth == 667)) {ungainMageName = @"Запускам-800-667H"; } // 6plus, 6splus вертикальный экран else if (isportrait && screenHeight == 736) {launchImageName = @"Запискаммаж-800-portrait-736H"; } // 6plus, 6splus горизонтальный экран else if (islandscape && screenwidth == 736) {launchImageName = @"Запискаммаж-800-landscape-736H"; } // iPad вертикальный экран else if (isportrait && screenHeight == 1024) {launchImageName = @"Запискаммаж-700-portrait"; } // iPad горизонтальный экран else if (Islandscape && screenwidth == 1024) {ungainMageName = @"Запискаммаж-700-landscape"; } if (launchImageName.length <1) return; // Изображение запуска устройства - это фоновое изображение контроллера UIIMAGE *IMG = [UIIMAGE ImageNamed: LaunchImageName]; self.view.backgroundcolor = [uicolor colorwithpatternimage: img];}3. Распечатайте всю информацию об изображении запуска
/** Распечатайте все ИМЕНИМА ИМЕНИЯ ИЗОБРАЖЕНИЯ В приложении*/- (void) printalllaunchimageinfo {nsdictionary*Infodict = [[nsbundle bainbundle] Infoditionary]; // Получить все информационные изображения запуска массив nsarray *launchimagesarr = Infodict [@"uilaunchimages"]; Nslog (@"launchimagesarr: %@", launchimagesarr); /* Журнал печати: Имя изображения запуска является фиксированным запусковным имером: ({uilaunchimageminimumosversion = "8.0"; uilaunchimageName = "launchimage-800-portrait-736h"; uilaunchimageoratation = portrait; uilaunchimages = "{414, 736}"; Uilaunchimageminimumosversion = "8.0"; "Запускам-800-667H"; 480} ";}, {uilaunchimageminimumosversion =" 7.0 "; uilaunchimageName =" launchimage-700-568H "; uilAunchImageoratation = portait; uilaunChimageSize =" {320, 568} ";}, {uilAunchimAgemAgemOsmoSIMOSIOSIONSIONSIORSIORSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIONSIOR UilaunchimageName = "Запускам-лифу-700-portrait"; Uilaunchimagesize = "{768, 1024}"; }, {UilaunchimageminimumoSversion = "7.0"; UilaunchimageName = "Запускам-лиф-700-ландшафт"; Uilaunchimageorientation = ландшафт; Uilaunchimagesize = "{768, 1024}"; }) */} 4. Распечатайте всю информацию о конфигурации
/** Информация о конфигурации проекта Print App*/- (void) printInfodictionary {nsdictionary*Infodict = [[nsbundle bainbundle] Infoditionary]; Nslog (@"%@", Infodict); /* Печатный журнал: {buildmachineosbuild = 15G31; CfbundeLevelopmentRegion = en; Cfbundleexecutable = tantest; Cfbundleicons = {cfbundleprimaryicon = {cfbundleiconfiles = (appicon29x29, appicon40x40, appicon60x60, appicon76x76, "appicon83.5x83.5"); }; }; Cfbundleidietifier = "net.tan.xxx"; Cfbundleinfodictionaryversion = "6.0"; Cfbundleinfoplisturl = "info.plist - Файл: /// Пользователи/PX/Library/Developer/Coresemulator/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; MinimumOsversion = "9,0"; Uidevicefamily = (1,); Uilaunchimagefile = launchimage; Uilaunchimages = ({uilaunchimageminimumosversion = "8.0"; uilaunchimageName = "запускамажа-800-portrait-736h"; uilaunchimageoratation = portait; uilaunchimagesize = "{414, 736}"; UilaunchimageName = "Запускам-800-landscape-736H"; Uilaunceoration = портрет; Uilaunchimageminimumosversion = "7.0"; "Запускам" 700-Portrait "; UilaunchimageName = "Запускам-лиф-700-ландшафт"; Uilaunchimageorientation = ландшафт; Uilaunchimagesize = "{768, 1024}"; }); Uilaunchstoryboardname = LaunchCreen; Uimainstoryboardfile = main; UirequiredDeviceCapabilities = (ARMV7); UisupportedInterfaceorientations = (uiinterfaceorientationportrait, uiinterfaceorientationlandscapeleft, uiinterfaceorientationlandscaperight); }*/}Выше приведено имя iOS Appicon и Launchimage (значок приложения и название изображения запуска), представленное редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!