UIView へのタッチを検出する : Objective-C プログラミング

PROGRAM


UIView へのタッチを検出する

UIView には UIControl のような touchUpInside などのアクションイベントは用意されていません。

ただ、UIView は UIResponder クラスを継承しているため、UIView クラスを派生して touchesBegan:withEvent: メソッドを実装すれば、タッチされたタイミングを知って何か処理を行うことが可能です。

// UIView から派生したクラスで、タッチ関連のメソッドを実装します。

 

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

{

// ここで、タッチが開始されたときの処理を実装します。

 

}

 

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event

{

// ここで、タッチが動かされたときの処理を実装します。

 

}

 

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

{

// ここで、タッチが離されたときの処理を実装します。

 

}

 

- (void)touchesCanceled:(NSSet*)touches withEvent:(UIEvent*)event

{

// ここで、タッチがキャンセルされたときの処理を実装します。

 

}

UIView ではこれらのメソッドを実装して、タッチ操作を制御して行くことになります。

なお、タッチのキャンセルというのは、ビューがタッチされたけれど、そのまま指が移動してビューの外に出てしまったときなどが該当するようです。

[ もどる ]