ターゲットとセレクターを備えたUIGestureRecognizersをいくつか追加しています。もう一方はきっと同じになるので、一方についてだけ話します。
UIPinchGestureRecognizerを追加しました
UIPinchGestureRecognizer *pinch = [UIPinchGestureRecognizer new];
[pinch addTarget:self action:@selector(pinchGestureDetected:)];
[self.view setMultipleTouchEnabled:YES];
[self.view addGestureRecognizer:pinch];
ここでの私の目標は、ピンチジェスチャを受け取ったときにこのメソッドを1回呼び出すことです。しかし、明らかに、人がつまむようにそれを呼び続けます。ページナビゲーションの一部として使用しており、ピンチインが検出されたときにビューを更新します。
したがって、私の-(void)pinchGestureDetected:(UIPinchGestureRecognizer)pinchメソッドでは、別のメソッドを呼び出します。ちょっと...そしてこれは少しsudoです
-(void)pinchGestureDetected:(UIPinchGestureRecognizer)pinch
{
if (pinch.scale > 1) layoutViewWithMoreDetail;
else layoutViewWithLessDetail;
}
したがって、このメソッドを呼び出し続けることは望ましくありません。そうしないと、layoutメソッドが引き続き呼び出されます。1つのレイアウト/ピンチジェスチャが必要です。
スケールが決まったらピンチの検出をやめる方法はありますか?途中で何か...
-(void)pinchGestureDetected:(UIPinchGestureRecognizer)pinch
{
if (pinch.scale > 1)
{
layoutViewWithMoreDetail;
stop receiving pinch gestures till this.gesture is finished;
}
GestureDelegateを暗示しますか?
-(void)pinchGestureDetected:(UIPinchGestureRecognizer)pinch
{
if (pinch.scale > 1 && pinching == NO )
{
layoutViewWithMoreDetail;
pinching = YES;
}
そして、ジェスチャーのデリゲートで終了しました...ピンチ= NO;
助けてくれてありがとう