有一个名为setAlternateIconName的方法:在iOS 10.3中引入,通过它可以更改应用程序的图标,但这些图标应该是预定义的.这意味着应该将图标添加到应用程序的包中并在中引用info.plist.
典型的info.plist看起来像:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>alternate_icon_name</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>alternate_icon_file</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>default_icon_file</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
实现代码如:
目标C:
[[UIApplication sharedApplication] setAlternateIconName:@"alternate_icon_name" completionHandler:^(NSError * _Nullable error) {
NSLog(@"Error...");
}];
Run Code Online (Sandbox Code Playgroud)
斯威夫特3:
if UIApplication.shared.supportsAlternateIcons
{
UIApplication.shared.setAlternateIconName("alternate_icon_name", completionHandler: { (error) in
print(error ?? "")
})
}
Run Code Online (Sandbox Code Playgroud)
您无法动态更改图标文件,因为图标文件名存储在应用程序plist中.
.
您无法动态更改应用程序plist,因为它存储在只读的应用程序包中.
所以你的要求是不可能的.
一种方法是以icon.png编程方式重写文件。您需要搜索允许访问您的应用程序资源文件系统的私有 API
| 归档时间: |
|
| 查看次数: |
8597 次 |
| 最近记录: |