Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > UIResponder

UIResponder

UIResponderサンプル

イベントの処理を管理するクラス。存在が薄いですがとても大切なインターフェース。UIViewやUIApplication等のスーパークラス。タッチイベントやモーションイベントを このクラスが管理していますので、アプリ開発には既にそれらイベントを保有していることになります。

UIResponderのクラス階層

NSObject

UIResponder
- SKNode
- UIApplication
- UIView
- UIViewController


参考:UIKit Framework Reference UIResponder Class Reference
参考:Swiftでラベルのタッチを検知する方法
参考:【Tips】iOSでシェイクジェスチャーを検知する

タッチイベントの数々

UIViewController.swiftに以下をコピペするとログが表示されます。touchesBeganは押した直後、Moveは押下しながらマウスを動かした時、 touchesEndedは終わった時。touchesCancelledはすこし特殊で規定以上の指でタッチする(5本以上=6本等)と発生します


    override func touchesBegan(touches: NSSet,withEvent event: UIEvent){
        println("touchesBeganが呼ばれました");
    }
    override func touchesMoved(touches: NSSet,withEvent event: UIEvent){
        println("touchesMovedが呼ばれました");
    }
    override func touchesEnded(touches: NSSet,withEvent event: UIEvent){
        println("touchesEndedが呼ばれました");
    }
    override func touchesCancelled(touches: NSSet,withEvent event: UIEvent){
        println("touchesCancelledが呼ばれました");
    }

UIResponderサンプル

モーションイベントの数々

端末を振ったときに実行されるイベントです。シェイクした時。これを利用する為には以下のcanBecomeFirstResponderを オーバーライドしてtrueを返す準備が必要です


   override func canBecomeFirstResponder() -> Bool {
        return true
    }

この状態で以下をコピペしてください。シェイクの前後に呼ばれます(キャンセルは判断不能な時等にコールされる)。


    override func motionBegan(motion: UIEventSubtype,withEvent event: UIEvent){
        println("motionBeganが呼ばれました");
    }
    override func motionEnded(motion: UIEventSubtype,withEvent event: UIEvent){
        println("motionEndedが呼ばれました");
    }
    override func motionCancelled(motion: UIEventSubtype,withEvent event: UIEvent){
        println("motionCancelledが呼ばれました");
    }

motionEventという名称なので加速度イベントかなとも思うのですが違います。加速度の場合は別のクラス(CoreMotionFramework)を 利用します。
参考:モーションイベントサンプル3 - CoreMotionを使った各種センサーの利用

↓こんな記事もありますよ!

デバッグ時とリリース時に処理を変更する#ifdef DEBUG のやり方

DEBUG時だけ特定の動作をさせて、リリース時に排除したい、そんな時に利用する方法です。Swiftでは標準ではDEBUGとリリースの判断がつかないので、 コンパイル時に設定する必要があります

関数引数の参照渡し Inout

Swiftで参照だけを渡す(呼び出し元の変数の値を変更する)にはどうしたらよいのかな〜と調査していると、関数引数に参照渡しする方法でindexinoutという言葉があることを知りました。紹介いたします

UIPageControlでペラペラめくるチュートリアル画面を作成する

UIPageControllでiOSアプリ初回起動時にのみ表示される, ペラペラめくるチュートリアル機能の説明です。プロジェクト作成時にPage-Basedを選ぶと作成することはできるのですが、既存のアプリに追加するには気がので、 既に作成したアプリに初回一回だけ表示するチュートリアルを解説します
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!