iOS POPアニメーション実践

2354 ワード

前言:昼寝がなくて眠い~用途: を作ることができて、多くの Appの中で比較的によく見られます.私はすでにカプセル化しました-例のダウンロードはすでに私のGitHubに置いて、ダウンロードすることができます-もっと知ります
丹念に作られていますが、画像は美しいのではないでしょうか.
UIViewに継承されたXTPopingViewを作成するには、しばらく機能していませんが、下-下-下の2つを実現して、どのように実現するかを見てみましょう.
Facebook POPを使用しました.
1.初期化
- (instancetype)initWithFrame:(CGRect)frame
{
    
    self = [super initWithFrame:frame];
    if (self) {
         self.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.3];
        [self addSubview:self.flyView];
        UITapGestureRecognizer *tapGes = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapClickAction)];
        [self addGestureRecognizer:tapGes];
    }
    return self;
}
- (UIView *)flyView
{
    if (!_flyView) {
        _flyView = [[UIView alloc] init];
    }
    return _flyView;
}

2.ビューの開始
- (void)startFly:(FlyType)type
{
    switch (type) {
        case FlyTypeUToD:
        {
            _flyView.frame = CGRectMake(SCREEN_WIDTH_XT / 2 - self.fly_w / 2, -self.fly_h, self.fly_w, self.fly_h);
        }
            break;
        case FlyTypeDToD:
        {
            _flyView.frame = CGRectMake(SCREEN_WIDTH_XT / 2 - self.fly_w / 2, SCREEN_HEIGHT_XT + self.fly_h, self.fly_w, self.fly_h);
        }
        default:
            break;
    }
    _flyView.backgroundColor = [UIColor purpleColor];
    POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter];
    anim.toValue = [NSValue valueWithCGPoint:self.center];
    //   
    anim.springSpeed = 5;
    //   --      (springSpeed  )
    anim.springBounciness = 10.0f;
    [_flyView pop_addAnimation:anim forKey:@"animationShow"];
}

3.ビューの削除
- (void)tapClickAction
{
    POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter];
    anim.toValue = [NSValue valueWithCGPoint:CGPointMake(self.center.x, SCREEN_HEIGHT_XT + self.fly_h)];
    [_flyView pop_addAnimation:anim forKey:@"animationRemove"];
    anim.springSpeed = 5;
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self removeFromSuperview];
    });
}

求初音ミク的片尾曲《君をのせて》的罗马拼音,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!