动态更改应用徽标

时间:2017-05-04 17:25:29

标签: ios ios10.3

这个问题与iOS 10.3的新功能有关,即让用户能够自定义他们在主屏幕上看到的应用徽标。 (在Bat应用程序中查看MLB以供参考,让用户选择哪个图标为app logo:http://m.mlb.com/apps/atbat

根据我的研究,我们需要提交所有可能的徽标选项以供苹果审查。然后,用户可以使用以下任何选项自定义徽标。现在在我的特定用例中,我可能并不总是希望所有用户都可以使用所有徽标选项。我需要帮助找出如何控制向所有用户显示哪些徽标? 例如。如果我们有10个图像,对于用户A,我们可能只想显示图像1和2来选择;对于用户B,我们可能只想显示图像3和图像4作为其应用徽标。这可能吗?非常感谢提前!

2 个答案:

答案 0 :(得分:0)

您可以使用setAlternateIconName(_:completionHandler:)上的UIApplication方法控制设置的图标。

使用示例:

UIApplication.shared.setAlternateIconName("myImage", completionHandler: { error in
    print("completed")
})

只要适合您的应用程序,您就可以调用它。因此,如果您只想显示几个选项,则可以使用自己的视图执行此操作,并且只在需要时调用此方法。

此处文档中的更多信息:https://developer.apple.com/reference/uikit/uiapplication/2806818-setalternateiconname

以下是另一个有用的代码和图片的答案:https://stackoverflow.com/a/41951096/6658553

答案 1 :(得分:0)

将所有图标添加到应用程序中的某些文件夹,借助以下方法,您应管理哪个用户应看到哪些图标。

if([user isEqualToString:@"user1"]){
    [UIApplication.sharedApplication setAlternateIconName:@"icon1" completionHandler:^(NSError * _Nullable error) {
            if (error) {
                NSLog(@"---> error - %@",error.description);
            }
            else{
                NSLog(@"---> icon1 ");
            }
        }]
}

如果您想让用户选择从图标中进行选择,那么您也可以相应地编写代码,这样他/她就只能从过滤的图标中进行选择。