フリック、タッチ検出

上下左右フリックとタッチを検出できます。

ViewController.mの一番下 @end の上にコピペで即ウゴです。

注意)フリックはiPhoneの向きと画面回転の有無で検出する状況も変わります。

iPhone縦向きで右フリック▷右フリック検出

iPhone右横向き(画面は左に回転)で右フリック▷右フリック検出

iPhone右横向き(画面回転せず)で右フリック▷上フリック検出

コピペで即動く

//タッチ開始検出

CGPoint _tB;

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    _tB = [ [touches anyObject] locationInView: self.view ];//タッチ開始位置記録

}

//タッチ終了検出

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

    CGPoint tE = [ [touches anyObject] locationInView: self.view ];//タッチ終了位置記録

    NSInteger xmv = ABS(_tB.x – tE.x);//x方向タッチ移動量

    NSInteger ymv = ABS(_tB.y – tE.y);//y方向タッチ移動量

    if((xmv < 50)&&(ymv < 50)){//タッチの移動量が50以下ならタッチ

        NSLog(@”タッチ);

        return;

    }

    if ( xmv < ymv ) {          //Y方向の移動量が多い場合 上下フリック

        if ( _tB.y > tE.y ) {   //タッチ 開始位置>終了位置 上フリック

            NSLog(@”上フリック);

        } else {                //タッチ 開始位置<終了位置 下フリック

            NSLog(@”下フリック);

        }

    } else {                    //X方向の移動量が多い場合 左右フリック

        if ( _tB.x > tE.x ) {   //タッチ 開始位置>終了位置 左フリック

            NSLog(@”左フリック);

        } else {                //タッチ 開始位置<終了位置 右フリック

            NSLog(@”右フリック);

        }

    }

}

 


このエントリーをはてなブックマークに追加
Clip to Evernote

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>