忍者ブログ
[60] [59] [58] [57] [56] [55] [54] [52] [51] [50] [49
いろいろなアプリでよくあるボタンの長押しによる連続処理を実装してみた。

始めは、どのように作り込むのがよいのか少し悩んだが、例によってネットで検索すると良い方法が出ていた。
長押し用のクラス「UILongPressGestureRecognizer」があったので、これを利用するのが最もよいようであった。
//ボタンの長押し設定部分
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressedButton:)];
    [button addGestureRecognizer:longPress];
上記の用に、長押しを「button」に設定する。

「longPressedButton」に長押し時の処理を書けばよい。
さらに、この中で、長押しの動作を細かく分けて処理を行う事が出来る。

-(void) longPressedButton:(UILongPressGestureRecognizer *)gestureRecognizer
{
    switch (gestureRecognizer.state) {
        case UIGestureRecognizerStateBegan:
            //長押しを検知開始
            break;
        case UIGestureRecognizerStateEnded:
            //長押し終了時
            break;
        default:
            break;
    }
}
上記のように長押しの開始終了を分ける事が可能。
さらに、他にもあるので、case文を増やすとさらに細かな処理を出来るが、他の処理としては、押したまま動かした時にくるイベントと、異常系のイベントらしかった。
今回、自分が欲しかったのは無いようであったので、上記のように実装した。

長押し中に連続した処理は、長押し開始時にタイマをセットし、終了時にタイマ停止を入れ、タイムアウトに処理を入れる事で、連続処理が行われるようになった。

これから先も、1回押しと、長押しの区別がされる事は、かなり便利に使う事が出来ると思う。

拍手[2回]

PR

この記事にコメントする
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (チェックを入れると管理人だけに表示できます)

リリース済みアプリ

うつすと!


ChronologyMaker


LASI


3行日記


単位計算機


Marking Map Plus


交通費管理


交通費計算リスト


Markin Map


SheepSleepSheep


RootCalculator


元号変換


PieChart


MeasureShooting


SimpleMapCreator



Applivのレビュー記事
http://app-liv.jp/713163900/

ゆびてんじ


PR



Copyright ©   marble seijin の開発日記   All Rights Reserved
Design by MMIT simple_plain Powered by NINJA TOOLS
忍者ブログ [PR]