UITouch UIGestureRecognizer
1:今回touch座標
2:前回touch座標
3:利用 UIpinchGestureRecognizerによるView通過 Transform縮小拡大
ステップ1:ジェスチャー捏合識別器の登録
ステップ2:doPinchメソッドの実装
4:UIGestureRecognizerジェスチャー優先度調整(IOS開発のジェスチャー-UIGestureRecognizer共存より抜粋)
5: UIGestureRecognizerはイベントのトリガに成功した後、ジェスチャーの実際のトリガ状況を識別する状態があります.例えば、いつ開始されたのか、いつ終了したのかなどです.
6:iOSは6種類のシステムレベルのジェスチャーを開発者に提供します.
1:UITapGestureRecognizer Tap(ちょっと)
2:UIPinchGestureRecognizer Pinch
3:UIRotationGestureRecognizer Rotation(回転)
4:UISwipeGestureRecognizer Swipe(スライド、クイック移動)
5:UIPanGestureRecognizer Pan(ドラッグ、スロー)
6:UILongPressGestureRecognizer LongPress(長押し)
1:3秒長押しするとイベントがトリガーされます
Begin :長い間押し続けたときにトリガーされました
End:手を離すとトリガー
7:IOS 6より先にUITapGestureRecognizerとUIButtonイベントを共存させる(iOS 6以降はデフォルトでサポート)
8:移動と速度によるジェスチャー移動のビューインタラクション
CGPoint point = [[touches anyObject] locationInView:self];
2:前回touch座標
CGPoint prevPoint = [[touches anyObject] previousLocationInView:self];
3:利用 UIpinchGestureRecognizerによるView通過 Transform縮小拡大
ステップ1:ジェスチャー捏合識別器の登録
UIPinchGestureRecognizer *pinch = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(doPinch:)] autorelease];
[self addGestureRecognizer:pinch];
ステップ2:doPinchメソッドの実装
#pragma mark - UIPinchGestureRecognizer
- (void)doPinch:(UIPinchGestureRecognizer *)pinch
{
CGAffineTransform newTransform = CGAffineTransformScale(self.transform, pinch.scale, pinch.scale);
[self setTransform:newTransform];
[pinch setScale:1];
}
4:UIGestureRecognizerジェスチャー優先度調整(IOS開発のジェスチャー-UIGestureRecognizer共存より抜粋)
// ,
[singleRecognizer requireGestureRecognizerToFail:doubleRecognizer];
5: UIGestureRecognizerはイベントのトリガに成功した後、ジェスチャーの実際のトリガ状況を識別する状態があります.例えば、いつ開始されたのか、いつ終了したのかなどです.
if (longGesture.state == UIGestureRecognizerStateBegan)
6:iOSは6種類のシステムレベルのジェスチャーを開発者に提供します.
1:UITapGestureRecognizer Tap(ちょっと)
2:UIPinchGestureRecognizer Pinch
3:UIRotationGestureRecognizer Rotation(回転)
4:UISwipeGestureRecognizer Swipe(スライド、クイック移動)
5:UIPanGestureRecognizer Pan(ドラッグ、スロー)
6:UILongPressGestureRecognizer LongPress(長押し)
1:3秒長押しするとイベントがトリガーされます
longPressGR.minimumPressDuration = 3;
トリガ後:設定されたメソッドが2回スケジュールされ、2つのステータスが入力されます.Begin :長い間押し続けたときにトリガーされました
End:手を離すとトリガー
7:IOS 6より先にUITapGestureRecognizerとUIButtonイベントを共存させる(iOS 6以降はデフォルトでサポート)
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
// UIButton,
if ([touch.view isKindOfClass:[UIButton class]])
{
return NO;
}
return YES;
}
注:iOS 6でTapGestureのactionを先に実行するにはcancelsTouchesInViewをNOに設定する必要がある.8:移動と速度によるジェスチャー移動のビューインタラクション
CGPoint velocity = [panGestureRecognizer velocityInView:controlPanelWindow];//
CGPoint translation = [panGestureRecognizer translationInView:controlPanelWindow];//