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的。。。。。。
相關文章
- iOS神技之動態更換APP的Icon圖iOSAPP
- 【iOS 開發】iOS 10.3 如何更換 app 圖示iOSAPP
- iOS App Icon和啟動圖尺寸配置iOSAPP
- 介面自動化之引數動態生成替換
- 效能優化 (八) APK 加固之動態替換 Application優化APKAPP
- Jenkins實戰之動態替換Android應用圖示JenkinsAndroid
- IOS11新特性之maskedCornersiOS
- iOS 8 之後UINavigationController新特性iOSUINavigationController
- 【iOS】動態更換圖示iOS
- Mybatis(一)Porxy動態代理和sql解析替換MyBatisSQL
- iOS 12 通知新特性 —— 自定義 App 通知的外觀iOSAPP
- 玩轉iOS開發:iOS 11 新特性《Layout的新特性》iOS
- 影片直播app原始碼,Swift動態修改Icon,消除系統彈窗APP原始碼Swift
- iOS逆向(9)-Cycript,動態分析APP利器iOSAPP
- canvas實現動態替換人物的背景顏色Canvas
- 教你如何動態除錯 iOS App(反編譯App)除錯iOSAPP編譯
- 動態修改應用icon和name
- iOS開發之APP內部切換語言iOSAPP
- Automatic Reference Counting(ARC)特性學習(iOS5新特性學習之五)iOS
- 【iOS印象】Swift 4.1 新特性iOSSwift
- Spark 3.0 新特性 之 自適應查詢與分割槽動態裁剪Spark
- oracle 11g 新特性之動態繫結變數窺視(一)Oracle變數
- oracle 11g 新特性之動態繫結變數窺視(二)Oracle變數
- App\User 替換為 App\Models\User 的問題解決!APP
- 玩轉iOS開發:iOS 10 新特性《UserNotifications》iOS
- Gradle多渠道打包(動態設定App名稱,應用圖示,替換常量,更改包名,變更渠道)GradleAPP
- HTML 替換元素與非替換元素HTML
- 玩轉iOS開發:iOS 8 新特性《Share Extension》iOS
- 玩轉iOS開發:iOS 10 新特性《Xcode Extension》iOSXCode
- 學習 iOS14 新特性,教你如何建立一個優秀的 App ClipiOSAPP
- 【OracleSQL】常用自動替換總結OracleSQL
- iOS12中推送通知新特性iOS
- WWDC 2018:iOS 12 通知的新特性iOS
- 基於多重替換方式的iOS程式碼混淆方案iOS
- Polardb 如何替換MYSQL 之 IMCI 列式攻略MySql
- Android開發之指令碼替換PackageNameAndroid指令碼Package
- fastapi 使用本地靜態檔案替換 swagger cdnASTAPISwagger
- 玩轉iOS開發:iOS 11 新特性《高階拖放》iOS
- 透過現象看本質:Java類動態載入和熱替換Java