iOS 10.3新特性之动态替换App Icon
2017-03-31 09:32
423 查看
动态更换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的。。。。。。
Demo地址相关文章推荐
- iOS新特性: iOS10.3教你如何动态更换APP图标
- (0042) iOS 开发之iOS10.3新特性:如何动态更换APP图标
- Xcode-iOS10.3新特性如何动态修改APP图标
- iOS新特性: iOS10.3教你如何动态更换APP图标?(后台切换) 韩俊强的博客
- iOS10.3新特性之动态更换APP图标
- 改变iOS app的icon(iOS10.3)
- 改变iOS app的icon(iOS10.3)
- ios10.3 动态更换app图标
- 改变iOS app的icon(iOS10.3)
- iOS 10.3 新特性 app评分 SKStoreReviewController swift
- iOS10.3起将支持动态更换app的icon图标
- iOS 动态更改APP(logo) icon
- App logo图标或内部icon的动态替换
- 改变 iOS App 的 icon(iOS10.3)
- 利用ios的hook机制实现adobe air ios ane下appdelegate的动态替换
- App logo图标或内部icon的动态替换
- 【iOS开发-1】AppIcon图标的尺寸,绘制,命名规则以及怎么回到HOME界面查看效果?
- ios 设置 app icon iphone6 iphone6 plus
- [iOS]The app icon set named "AppIcon" did not have any applicable content.
- IOS APP ICON 尺寸