UIView
私はそれをタップして4倍に拡大します。それはうまく動作します。次のタップで元のサイズに戻したいと思います。問題は、スケーリング前にUIView
が持っていた小さい方の矩形でのみタップを認識することです。スケーリングされたの任意の場所でタップを認識したいと思います。どうすれば達成できますか?スケーリング後のタップを認識するUITapGestureRecognizer UIView
//Tapping code
titleCard = [[UIView alloc] initWithFrame: myrect];
[self addSubview:titleCard];
[titleCard release];
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(changeSize:)];
[tapRecognizer setNumberOfTouchesRequired:1];
[tapRecognizer setNumberOfTapsRequired:1];
[titleCard addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
//Scaling code
CABasicAnimation *scale = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
[scale setBeginTime:CACurrentMediaTime()+0.75];
[scale setDuration:0.5];
[scale setToValue: [NSNumber numberWithFloat:4.0f]];
[scale setRemovedOnCompletion:NO];
[scale setFillMode:kCAFillModeForwards];
ありがとうございます。
この動作理由は、ジェスチャがビューのサイズに基づいていることです。レイヤーをアニメートすると、ビジュアルが変更されますが、実際にはビューのサイズは変更されません。 置き換えコードは実際にビューのサイズを変更します。 – Skotch