【Swift】バイブレーションの実装方法!UINotificationFeedbackGenerator

この記事からわかること

  • Swiftバイブレーション機能実装する方法
  • UINotificationFeedbackGeneratorクラス使い方
  • AudioToolboxフレームワーク
  • 鳴らせるバイブレーションの違い種類

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

バイブレーションを鳴らす方法

Swiftでバイブレーションを実装するにはUINotificationFeedbackGenerator/UIImpactFeedbackGenerator/UISelectionFeedbackGeneratorクラスかAudioToolboxフレームワークを使用します。

各クラスの役割の違い

UINotificationFeedbackGeneratorクラス

公式リファレンス:UINotificationFeedbackGeneratorクラス

UINotificationFeedbackGeneratorクラスはユーザーに対して成功や失敗、警告などを触覚的に伝えるためのジェネレータークラスです。バイブレーションを実装するにはこのクラスのnotificationOccurredメソッドなどを使用します。

notificationOccurredメソッドを使用する場合は引数に列挙型FeedbackTypeの値を渡します。

FeedbackType.success(成功)

UINotificationFeedbackGenerator().notificationOccurred(.success)

FeedbackType.error(失敗)

UINotificationFeedbackGenerator().notificationOccurred(.error)

FeedbackType.warning(警告)

UINotificationFeedbackGenerator().notificationOccurred(.warning)

UIImpactFeedbackGeneratorクラス

公式リファレンス:UIImpactFeedbackGeneratorクラス

UIImpactFeedbackGeneratorクラスは物理的な衝撃を触覚的にユーザーに伝えるためのジェネレータークラスです。インスタンス化する際に列挙型FeedbackStyleの値を渡してバイブレーションの種類を選択し、impactOccurredメソッドで実行しています。

軽めの振動

UIImpactFeedbackGenerator(style: .light).impactOccurred()

普通の振動

UIImpactFeedbackGenerator(style: .medium).impactOccurred()

重めの振動

UIImpactFeedbackGenerator(style: .heavy).impactOccurred()

UISelectionFeedbackGenerator

公式リファレンス:UISelectionFeedbackGeneratorクラス

UISelectionFeedbackGeneratorクラスは選択が変更されたことを触覚的に伝えるためのジェネレータークラスです。selectionChangedメソッドを実行することで振動が実行されます。

UISelectionFeedbackGenerator().selectionChanged()

AudioToolbox

Audio Toolboxフレークワークはオーディオの録音または再生、フォーマットの変換、オーディオストリームの解析、およびオーディオセッションの構成を行うためのAPIを提供するフレームワークです。

おすすめ記事:【Swift】システムサウンドの再生方法!AudioServicesPlaySystemSoundの使い方

AudioToolboxフレームワークはこれまでのクラスと違いimportを記述しないと使用することはできません。

import AudioToolbox

バイブレーションを鳴らす

AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))

またシステムサウンドIDを渡すことで任意の目的にあったバイブレーションを鳴らすことも可能です。

AudioServicesPlayAlertSoundWithCompletion(SystemSoundID(1311))

システムサウンドIDに関しては以下の表を参考にしてください。

iOSシステムサウンド一覧

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index