統計情報(30日間)


最新情報をツイート

人気の投稿

現在位置のパルス

このエントリーをはてなブックマークに追加

ポワーンとパルスが中心から外側へ拡がるアニメーション。MKAnnotationViewのサブクラスとして実装されている。


よくあるUIだがライブラリでは意外に見かけなかった。地味に便利。

真ん中の●のレイヤー dotLayer とアニメーションする輪っか haloLayerの2つのレイヤーを用意。

@property (nonatomic, strong) CALayer *dotLayer;
@property (nonatomic, strong) CALayer *haloLayer;
輪っかの広がりアニメーションはこんな感じ。カスタムなKeyframeを用意し、transform.scaleとopacityを変化させてアニメーションを表現している。
- (CALayer *)haloLayer {
    if(!_haloLayer) {
        _haloLayer = [CALayer layer];
                :
        CAKeyframeAnimation *imageAnimation = [CAKeyframeAnimation animationWithKeyPath:@"contents"];
        imageAnimation.values = @[
                                  (id)[[self haloImageWithRadius:20] CGImage],
                                  (id)[[self haloImageWithRadius:35] CGImage],
                                  (id)[[self haloImageWithRadius:50] CGImage]
                                  ];
        imageAnimation.duration = self.pulseAnimationDuration;
        imageAnimation.calculationMode = kCAAnimationDiscrete;
        
        CABasicAnimation *pulseAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale.xy"];
        pulseAnimation.fromValue = @0.0;
        pulseAnimation.toValue = @1.0;
                :
        
        CABasicAnimation *fadeOutAnim = [CABasicAnimation animationWithKeyPath:@"opacity"];
        fadeOutAnim.fromValue = @1.0;
        fadeOutAnim.toValue = @0.0;
                :
    




Leave a Reply