iOS 10.3 - 如何以编程方式更改应用程序图标

标签 ios objective-c swift ios10.3 appicon

<分区>

iOS 10.3 带有动态应用程序图标更改功能。开发者现在可以在不更新应用程序的情况下更改应用程序图标。

我想动态更改我的应用程序图标,如何以编程方式更改我的应用程序图标。

提前致谢。

最佳答案

是的,iOS 10.3 终于让开发者能够以编程方式更改应用程序的图标。

可以从 iOS 10.3 更改 appIcon。为此,您需要在 info.plist 中将 supportsAlternateIcon 设置为 Yes

主要和次要图标都应添加到您应用的 Info.plist 文件的 CFBundleIcons 键中。

//Info.plist
<key>CFBundleIcons</key>
<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>Icon1</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>alternater1</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
        <key>Icon2</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>alternater2</string>
            </array>
        </dict>
    </dict>
</dict>

要更改应用程序图标,需要调用 UIApplication 方法:

Objective-C :

[[UIApplication sharedApplication] setAlternateIconName:@"alternater2" completionHandler:^(NSError * _Nullable error) {
        NSLog(@"Error...");
}];

swift 3:

if UIApplication.shared.supportsAlternateIcons{
        UIApplication.shared.setAlternateIconName("alternater2", completionHandler: { (error) in
            print(error ?? "")
        })
}

更详细的教程见:
Apple Document: setAlternateIconName(_:completionHandler:)
How to change your app icon dynamically with setAlternateIconName()

关于iOS 10.3 - 如何以编程方式更改应用程序图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43233675/

相关文章:

ios - 何时在iOS中更新图标角标(Badge)编号?

ios - UISegmentedControl 的 NSAttributedstring

objective-c - 触摸绘制和删除线条

ios - 在 iOS Swift 中检测设备上正在播放哪个音轨

ios - 如何使用地理围栏和 CLCircularRegion 设置 "Check-In"警报?

swift - 无法加载 XCTest 的底层模块

ios - 针对特定设备的缩放

ios - 在 Objective-C iOS 中替换去电屏幕

iphone - 当键盘未进行更改时检测 UITextField 内容的更改

ios - 多个 CALayer 蒙版导致性能问题