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を使った各種センサーの利用

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

Pintoを1年利用してほんとにプログラマーの背筋がピンとなった(P!nto)

猫背どうにかならないかな、、、、。プログラマーとしての職業上日中8割9割は画面と押し問答している私は、 熱中すればするほど画面に食い入り知らず知らずに前のめりの姿勢に。姿勢が悪い、、、、分かってるんだけど、やめられない。

NSNotificationCenterでコード間のイベントやりとり

AppDelegateのイベント(アプリがアクティブ)になるタイミングでViewControllerに通知する為にはどうすればいいのか?と 調査しているとこのクラスにたどり着きました。delegateを利用せずにイベントの通知をViewController間で簡単に実装できるので 使いやすいです!

NSThreadでスレッド処理を行う

タイマー処理と同様に利用できるスレッドの処理です。NSTimerではヒゲがのびたサンプルでしたので眉毛の濃くなるサンプルにしてみます。ただ、どうやらThread処理は 推奨されておらず、dispatch_queueを使用するべきのようです。
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!