iOS 10.3新特性之動態替換App Icon
動態更換Icon
先看下iOS 10.3下新增的這三個屬性
@interface UIApplication (UIAlternateApplicationIcons)
// If false, alternate icons are not supported for the current process.
@property (readonly, nonatomic) BOOL supportsAlternateIcons NS_EXTENSION_UNAVAILABLE("Extensions may not have alternate icons") API_AVAILABLE(ios(10.3), tvos(10.2));
// Pass `nil` to use the primary application icon. The completion handler will be invoked asynchronously on an arbitrary background queue; be sure to dispatch back to the main queue before doing any further UI work.
- (void)setAlternateIconName:(nullable NSString *)alternateIconName completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler NS_EXTENSION_UNAVAILABLE("Extensions may not have alternate icons") API_AVAILABLE(ios(10.3), tvos(10.2));
// If `nil`, the primary application icon is being used.
@property (nullable, readonly, nonatomic) NSString *alternateIconName NS_EXTENSION_UNAVAILABLE("Extensions may not have alternate icons") API_AVAILABLE(ios(10.3), tvos(10.2));
@end
第一個
supportsAlternateIcons
是否支援動態替換
第二個
也就是核心方法,根據配置,替換自己想要的icon,具體引數描述以及介紹大家基本上都知道,按下option進去看看就行了,主要還是涉及到info.plist的配置
官方指定的plist key介紹
第三個
替換icon的時候根據該屬性獲取到當前被替換到顯示的icon名稱,例如你沒換的時候就是nil,換了icon1,那麼就顯示icon1
Plist配置以及Icon圖片如何存放
第一步—>設定plist
首先看下info.plist,寫的很詳細了,依葫蘆畫瓢總會吧
第二步—>放iCON
首先和一個icon一樣,也就是對應的Primary Icon,直接拖進Asset裡面管理,需要注意的是,需要輪流替換的其他icon不能拖進去啊,不然跑起來,error了,直接和檔案一樣建個資料夾放在目錄下即可,具體的欄位和配置看一眼Demo搞一次就明白了,這裡講再多都沒用
第三步—>程式碼
if (![[UIApplication sharedApplication] supportsAlternateIcons]) {
NSLog(@"不支援。。。");
return;
}
else
{
NSLog(@"支援動態替換");
}
NSString *icon = [[UIApplication sharedApplication] alternateIconName];
if (icon) {
NSLog(@"icon is exist");
NSString *changeStr = nil;
if ([icon isEqualToString:@"IconChange"]) {
changeStr = @"IconChangeNext";
}
[[UIApplication sharedApplication] setAlternateIconName:changeStr completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"error");
}
NSLog(@"done");
}];
}
else
{
NSLog(@"icon not exist");
[[UIApplication sharedApplication] setAlternateIconName:@"IconChange" completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"error");
}
NSLog(@"done");
}];
}
一個特別奇怪的新特性,鬼知道apple要幹嘛,難不成以後手機裡面清一色一個icon,這樣看起來也是很裝B的。。。。。。
相關文章
- ### iOS10.3雞肋新特性 動態更換App圖示iOSAPP
- iOS神技之動態更換APP的Icon圖iOSAPP
- iOS 動態更換iconiOS
- 效能優化 (八) APK 加固之動態替換 Application優化APKAPP
- iOS 10.3 如何更換 app 圖示iOSAPP
- 【iOS 開發】iOS 10.3 如何更換 app 圖示iOSAPP
- 介面自動化之引數動態生成替換
- iOS App Icon和啟動圖尺寸配置iOSAPP
- IOS11新特性之maskedCornersiOS
- Jenkins實戰之動態替換Android應用圖示JenkinsAndroid
- Java 10 新特性之 AppCDSJavaAPP
- [分享]iOS開發 - iOS自動佈局的替換方案iOS
- iOS9.0之後NSStringencode方法替換iOS
- Mybatis(一)Porxy動態代理和sql解析替換MyBatisSQL
- 如何為一個例項動態替換方法
- Android 動態替換手機桌面圖示Android
- MySQL 5.7新特性之動態修改innodb_buffer_pool大小MySql
- 【iOS】動態更換圖示iOS
- iOS app icon 通用設計規則iOSAPP
- Tree動態顯示Icon
- canvas實現動態替換人物的背景顏色Canvas
- 【iOS】動態修改APP圖示iOSAPP
- [貝聊科技]談談 iOS 如何動態切換 APP 的主題iOSAPP
- 玩轉iOS開發:iOS 11 新特性《Layout的新特性》iOS
- 玩轉iOS開發:iOS 11 新特性《基於文件管理的App》iOSAPP
- iOS 12 通知新特性 —— 自定義 App 通知的外觀iOSAPP
- 影片直播app原始碼,Swift動態修改Icon,消除系統彈窗APP原始碼Swift
- 動態修改應用icon和name
- Spark 3.0 新特性 之 自適應查詢與分割槽動態裁剪Spark
- oracle 11g 新特性之動態繫結變數窺視(二)Oracle變數
- oracle 11g 新特性之動態繫結變數窺視(一)Oracle變數
- iOS 8 之後UINavigationController新特性iOSUINavigationController
- iOS逆向(9)-Cycript,動態分析APP利器iOSAPP
- 談談“&”替換標誌的一些特性
- 教你如何動態除錯 iOS App(反編譯App)除錯iOSAPP編譯
- 玩轉iOS開發:iOS 11 新特性《UIKit新特性的基本認識》iOSUI
- 【iOS印象】Swift 4.1 新特性iOSSwift
- iOS新特性引導頁iOS