nasıl iphone'In yalpalıyor simgesi etki oluşturmak için?
Görüntüyü ileri geri benim uygulaması iPhone üzerinde aşağı tuşuna bastığınızda bocalama simgeleri nasıl benzer tereddüd etmek istiyorum. Bunu yapmanın en iyi yolu nedir?
Bu animasyonlu GİF kullanarak değil animasyonlar içine benim ilk baskını olduğunu. Bu fikir biraz görüntüyü ileri geri sallanıyor efekti oluşturmak için döner. CABasicAnimation ve CAKeyframeAnimation kullanarak baktım. CABasicAnimation bir titreme yerden atlar çünkü tekrarlar her zaman oluşturur ve geri açılıyor gibi değil. CAKeyframeAnimation işe giremiyorum dışında bir çözüm gibi görünüyor. Ben bir şey eksik olmalı. İşte benim kod CAKeyframeAnimation çalışmıyor):
NSString *keypath = @"wobbleImage";
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:keypath];
animation.duration = 1.0f;
animation.delegate = self;
animation.repeatCount = 5;
CGFloat wobbleAngle = 0.0872664626f;
NSValue *initial = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(0.0f, 0.0f, 0.0f, 1.0f)];
NSValue *middle = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(wobbleAngle, 0.0f, 0.0f, 1.0f)];
NSValue *final = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(-wobbleAngle, 0.0f, 0.0f, 1.0f)];
animation.values = [NSArray arrayWithObjects:initial, middle, final, nil];
[imageView.layer addAnimation:animation forKey:keypath];
< / ^ br . Ya da sadece eksik olduğuma çok daha basit bir çözüm olabilir. Herhangi bir işaretçiler takdir ediyorum. Teşekkürler!
CEVAP
Ramin cevabı çok iyiydi, ama OS4 beri aynı etkiyi animateWithDuration kullanarak basit bir işlevi de elde edilebilir.
(gelecek google'cuların için onu örnek uyarlanmıştır)
#define RADIANS(degrees) ((degrees * M_PI) / 180.0)
- (void)startWobble {
itemView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-5));
[UIView animateWithDuration:0.25
delay:0.0
options:(UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse)
animations:^ {
itemView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(5));
}
completion:NULL
];
}
- (void)stopWobble {
[UIView animateWithDuration:0.25
delay:0.0
options:(UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveLinear)
animations:^ {
itemView.transform = CGAffineTransformIdentity;
}
completion:NULL
];
}
Nasıl GUID/a UUID iPhone SDK kullanara...
Nasıl iPhone dinamik, renkli 1x1 bir U...
nasıl bir iphone app yerel bildirimler...
Nasıl iPhone SDK üzerinde etkin bir İn...
Nasıl alfa-sayısal rasgele bir dize ol...