スクリーンショット_2019-09-16_16

iPhoneを振ると変身するアプリ

誰にでも作れる超簡単なiPhoneアプリ、今日は加速度センサーを使った「揺さぶると変身するアプリ」の作り方を紹介します。Xcode初心者の練習用です。

XcodeでiPhoneを揺さぶった時に何かの動作をさせたい時、次のコードを使います。

override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
       if event?.subtype == UIEvent.EventSubtype.motionShake{
        //ここにiPhoneを揺さぶった時の動作を書き加える
       }


1.画像を用意する

最初に画像を3つ枚用意します。今回は地味顔と盛り顔の2点と、ボタン画像1点。どれもKeynoteでテキトーに自作しています。

今回はこんな感じで。

スクリーンショット 2019-09-18 10.32.35

ご自身で試しにアプリを作ってみたい方は、下から画像をダウンロードして使っていただいて結構です。

2. 画像をAssets.xcassetsに入れる

上の画像をダウンロードしたら、3つの画像をxcodeの青いフォルダAssets.xcassetsに入れ込みます。画像を挿入する方法や、ビューとコントローラーの接続方法については下の記事を参考にしてください。


3.デザイン画面を編集する

XcodeのMain.storyboardを開くと、iPhoneのデザイン画面が出てきます。下の図のように、ボタンとImageViewを画面の左右中央に配置します。

画像2

次にボタンの画像を入れます。まず部品のボタンをクリックして、下図の手順で画像を入れていきます。タイトルの「button」というテキストは忘れず削除しましょう。

画像3

imageViewにも同じような手順で「smile」の画像を入れておきます。

画像4

これで初期画面の設定ができました。

4.コードを書く

ではデザイン画面のMain.Storyboardと、画面を制御するViewController.swiftを接続していきます。接続する時は2つの画面を同時に表示します。画面右上の円が重なるようなアイコンをクリックすると、2画面表示になります。

画像5

各部品を接続したら、下記のようにコードを書いてください。参考に図の下にコードも添付しています。

画像6

import UIKit

class ViewController: UIViewController {
   
   @IBOutlet weak var imageView: UIImageView!
   
   override func viewDidLoad() {
       super.viewDidLoad()
       
       imageView.image = UIImage(named: "smile")
   }
   
   
   //ボタンを押した時の動作
   @IBAction func tapButton(_ sender: Any) {
       
       if(imageView.image == UIImage(named: "smile")){
           imageView.image = UIImage(named: "make")
       }
   }
   
   //iPhoneを振った時の動作
   override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
       
       if event?.subtype == UIEvent.EventSubtype.motionShake{
           imageView.image = UIImage(named: "smile")
           
       }
   }
}

初期画面……imageViewに画像「smile」が表示される

画像7

ボタンを押した時の動作……imageViewに画像「make」が表示される

画像8

iPhoneを振った時の動作……imageViewに画像「smile」が表示される

という動きになります。これで「素顔の時にルージュのボタンを押したら派手メイク顔に変身。iPhoneを振ったら元の素顔に戻る」というアプリができました。

とても簡単なので、作って遊んでみてください。


この記事が気に入ったらサポートをしてみませんか?