↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

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

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

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


2021-05-14 14:21:41

WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。

AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、 昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は...

2021-05-06 14:04:37

LINEのアニメーションスタンプ制作の落とし穴、、、失敗談

ゴールデンウィークにLINEスタンプを作成してみました。 作り切って申請も通したんですが、意図したアニメーションと違う、、、、 LINEクリエーターの画面だと、アニメーションのプレビュー...

2021-05-01 18:05:35

久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。

忘れないようにメモ エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。 ターゲット→ex...
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!