2012年8月18日土曜日

CGRectContainsPointで特定の範囲がタッチされたかどうかを判別する

このエントリーをはてなブックマークに追加
CGRectContainsPointは、指定した領域に指定した位置が含まれるかどうかを判別するメソッドです。これを利用して、指定した範囲がタッチされたかどうかを判別するサンプルを書きました。


プログラム
タッチした時に呼ばれるtouchesBeganメソッドで、CGRectContainsPointを利用した分岐処理を記述しました。CGRectContainsPointの第一引数は領域、第二引数は位置を指定します。

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

    CGRect targetRect = CGRectMake(0, 0, 44, 44);
    CGPoint location = [[touches anyObject] locationInView:self];
    if (CGRectContainsPoint(targetRect, location)) {
        NSLog(@"touched in targetRect");
    }
}


xやyといった位置や、widthやheightといった幅や高さで判別するような記述を行わなくて済むので、これで記述量が少なくなりそうです。

関連:iPhoneでのタッチやタップをtouchesBeganで検知する

0 件のコメント:

コメントを投稿