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 ではこれらのメソッドを実装して、タッチ操作を制御して行くことになります。
なお、タッチのキャンセルというのは、ビューがタッチされたけれど、そのまま指が移動してビューの外に出てしまったときなどが該当するようです。
[ もどる ]