【发布时间】:2013-04-23 20:44:03
【问题描述】:
我有一个 UIPanGestureRecognizer。它工作正常。我做了一个 if 语句,所以当有人触摸图片时,它会是 alpha 0.7,并且会大 1.5 倍。 alpha 工作正常,但是当我输入 CAAffineTransformMakeScale 方法时,我的图像不会移动。
这是我的代码:
- (IBAction)Bloemen:(UIPanGestureRecognizer *)recognizer {
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
if (UIGestureRecognizerStateBegan)
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelay:0.1];
[UIView setAnimationDuration:0.4];
bloemen.alpha = 0.7f;
bloemen.transform = CGAffineTransformMakeScale(1.5,1.5);
[UIView commitAnimations];
}
if (UIGestureRecognizerStateEnded) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelay:0.1];
[UIView setAnimationDuration:0.1];
bloemen.alpha = 1.0f;
bloemen.transform = CGAffineTransformIdentity;
[UIView commitAnimations];
}
}
【问题讨论】:
-
如果您使用自动布局,我可以向您展示如何动画约束的变化(因为当您重新应用约束时,移动的视图将返回到其原始位置,例如当您执行最终动画时),但除非您使用自动布局,否则不想混淆问题。上述代码 sn-p 中的关键问题在于
if子句,如下所述。
标签: ios xcode core-animation uigesturerecognizer uipangesturerecognizer