post Image
iOSアプリのアイコンを任意のタイミングで変更する方法(アイコンの動的変更)

はじめに

先日,アプリのアイコンを変更することで,ユーザのアプリを開く手間を削減するといった内容のアプリを開発しました.そこで,アイコンを動的に変更する方法を自分なりにメモとして残しておきます.

開発環境

Xcode 10.1
Swift 4.2.1

準備するもの

アイコンを3つ(サイズ:1024px)

ストーリボードにボタンを配置

スクリーンショット 2018-12-24 17.42.57.png

こんな感じで.
ボタンが押されたタイミングでアイコンが変更されるようにする.
スクリーンショット 2018-12-24 18.30.17.png
関連付けは忘れずにしておくように.

プロジェクトにアイコン画像を入れる

今回は以下の画像を使用
icon.pngicon1.pngicon2.pngicon3.png
白のアイコンをデフォルトのアイコンとする.

コーディング

の前にInfo.plistを編集する.
スクリーンショット 2018-12-24 18.05.02.png

そしてIcon files(iOS 5)を追加スクリーンショット 2018-12-24 18.06.44.png

CFBundleAlternateIconsというKeyをDictionary型で追加
スクリーンショット 2018-12-24 18.08.50.png

さらにDictionary型でIcon1を追加
さらにその下にCFBundleIconFilesというKeyをArray型で追加
その下にitemをString型で追加し,Valueにアイコン画像の名前を入れる(拡張子は不要)
スクリーンショット 2018-12-24 18.17.01.png
あとは同じものを残りのアイコンの分も行う.コピペが可能.
このようになっていればOK
スクリーンショット 2018-12-24 18.18.56.png

あとは,アイコンを変更するコードを書くだけ.

今度こそコーディング

といっても,簡単にできてしまう.

let iconName = "Info.plistに書き込んだアイコンのKey"
UIApplication.shared.setAlternateIconName(iconName, completionHandler: { error in print(error as Any) })

今回作ったサンプルにプロジェクトだとこうなる.

// アイコン1のボタンに関連付け済み
@IBAction func changeIconBtn1(_ sender: Any) {
    let iconName = "Icon1" // icon1.png(赤色のアイコン)
    UIApplication.shared.setAlternateIconName(iconName, completionHandler: { error in print(error as Any) })
}

ちなみにnilにするとデフォルトのアイコンになる.

UIApplication.shared.setAlternateIconName(nil, completionHandler: { error in print(error as Any) })

実際に動かしてみた

sample_movie_1(1).gif

でけた.ほんとに簡単.それでは.


『 Swift 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。