이것은 이상한 요청이지만 코어 애니메이션 (CALayers)을 사용하고 있으며 애니메이션이 고르지 않고 매끄럽지 않게하려고합니다. 시계에 초침처럼 회전하도록 설정된 이미지가 필요합니다. 여기에 내 코드가있다 :코어 애니메이션이 아닌 매끄러운 애니메이션
UIImage *arrowImage = [UIImage imageNamed:@"arrow.jpg"];
CALayer *arrow = [CALayer layer];
arrow.contents = (id)arrowImage.CGImage;
arrow.bounds = CGRectMake(0, 0, 169.25, 45.25);
arrow.position = CGPointMake(self.view.bounds.size.width/2, arrowImage.size.height/2);
arrow.anchorPoint = CGPointMake(0.0, 0.5);
[self.view.layer addSublayer:arrow];
CABasicAnimation *anim1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
anim1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
anim1.fromValue = [NSNumber numberWithFloat:0];
anim1.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
anim1.duration = 4.0;
[arrow addAnimation:anim1 forKey:@"transform"];
그것은 내가 원하지 않는 활공 동작을 일으킨다. 이 문제를 어떻게 해결할 수 있습니까? 도움을 주시면 감사하겠습니다.
답장을 보내 주셔서 감사합니다. CALayers를 사용하면 앱 성능이 향상 될 것입니다. 또한 저자가 잘 설명하지는 않았지만 내가 찾고있는 예를 발견했습니다. http://blog.moonshine-project.com/en/2010/03/14/implicit-animation-of -custom-calayer-properties/ –
Jlehr이 옳습니다. 나는 화살표를 사라지게하고 활주없이 새로운 위치에 나타나기를 원한다. 그러면 애니메이션을 전혀 사용하지 않아야한다. 회전 변환을 이미지에 직접 적용하면 완료됩니다. –
앱 성능은 무엇입니까? 속도를 높이는 것처럼 들리 네요. 또한 이것은 내가 까다 롭지 만 대부분의 시계 응용 프로그램은 아날로그 시계에 사실적인 느낌을줍니다. 초침이 움직이면 약간 진동합니다. 예를 들어 iPhone과 함께 제공되는 표준 세계 시계 응용 프로그램을보십시오. –