Created
July 18, 2012 11:21
-
-
Save ttsubono/3135652 to your computer and use it in GitHub Desktop.
MapViewでpinが落ちてくるアニメーション
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// これを適当なメソッドにして、CustomAnnotationViewにセットし、MKMapViewDelegateのmapView:didAddAnnotationViews | |
// でそのメソッドを呼び出すか、CustomAnnoationViewのdidMoveToSuperviewメソッドにセットする。 | |
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"]; | |
animation.duration = 0.4; | |
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; | |
animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, -400, 0)]; | |
animation.toValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; | |
CABasicAnimation *animation2 = [CABasicAnimation animationWithKeyPath:@"transform"]; | |
animation2.duration = 0.10; | |
animation2.beginTime = animation.duration; | |
animation2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; | |
animation2.toValue = [NSValue valueWithCATransform3D:CATransform3DScale(CATransform3DMakeTranslation(0, self.layer.frame.size.height*kDropCompressAmount, 0), 1.0, 1.0-kDropCompressAmount, 1.0)]; | |
animation2.fillMode = kCAFillModeForwards; | |
CABasicAnimation *animation3 = [CABasicAnimation animationWithKeyPath:@"transform"]; | |
animation3.duration = 0.15; | |
animation3.beginTime = animation.duration+animation2.duration; | |
animation3.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; | |
animation3.toValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; | |
animation3.fillMode = kCAFillModeForwards; | |
CAAnimationGroup *group = [CAAnimationGroup animation]; | |
group.animations = [NSArray arrayWithObjects:animation, animation2, animation3, nil]; | |
group.duration = animation.duration+animation2.duration+animation3.duration; | |
group.fillMode = kCAFillModeForwards; | |
[self.layer addAnimation:group forKey:nil]; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
http://stackoverflow.com/questions/1857160/how-can-i-create-a-custom-pin-drop-animation-using-mkannotationview