2017-04-05 50 views
4

iOS 10.3帶有動態應用程序圖標更改功能。開發人員現在可以在不更新應用程序的情況下更改應用程序圖標。iOS 10.3 - 如何以編程方式更改應用程序圖標

我想動態更改我的應用程序圖標,如何以編程方式更改我的應用程序圖標。

在此先感謝。

+2

https://developer.apple.com/reference/uikit/uiapplication/2806818-setalternateiconname? – Larme

回答

7

是的,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的方法需要被調用:

目標C:

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

夫特3:

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

有關更詳細的導師IAL,請參閱:
Apple Document: setAlternateIconName(_:completionHandler:)
How to change your app icon dynamically with setAlternateIconName()

相關問題