POP学习总结

作者: 郑州程序员王一 | 来源:发表于2016-09-07 22:37 被阅读143次

例子一:UITableViewCell Animation

UITableViewCell Demo下载:Demo
效果图:

演示Demo.gif
我们创建一个动画在tableViewCell上,首先添加一个放大的动画当我们点击cell的时候,当我们手离开屏幕的时候,我们用将cell上缩回原先的大小用spring animation;
重写cell中的setHighlighted方法,代码如下:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
    [super setHighlighted:highlighted animated:animated];
    if (self.highlighted) {
        POPBasicAnimation *scaleAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewScaleXY];
        //duration 持续时间
        scaleAnimation.duration = 0.1;
        //点击时,字体大小
        scaleAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(1, 1)];
        [self.titleLabel pop_addAnimation:scaleAnimation forKey:@"scalingUp"];
    } else {
        POPSpringAnimation *sprintAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewScaleXY];
        //缩小的时候,字体大小
        sprintAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(0.9, 0.9)];
        //缩小后弹回字体本来大小
        sprintAnimation.velocity = [NSValue valueWithCGPoint:CGPointMake(1, 1)];
        //弹力值
        sprintAnimation.springBounciness = 20.f;
        [self.titleLabel pop_addAnimation:sprintAnimation forKey:@"springAnimation"];
    }
}

Animating UIButton动画

UIButton Demo下载:Demo
效果图:

演示Demo.gif
实现UITextField的代理方法,在这个方法中我们可以监控用户输入和删除文字,内部的实现如下:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    
    NSString *comment;
    
    if(range.length == 0){
        comment = [NSString stringWithFormat:@"%@%@", textField.text, string];
    }else{
        comment = [textField.text substringToIndex:textField.text.length - range.length];
    }
    
    if (comment.length == 0) {
        [self setupZanBtn];
    }else{
        [self setupSendBtn];
    }
    
    return YES;
}

之后我们实现setupZanBtn和setuasendbtn

//发送按钮
-(void)setupSendBtn{
    if (self.sendBtn.isHidden) {
        self.zanBtn.hidden = YES;
        self.sendBtn.hidden = NO;
        POPSpringAnimation *sprintAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewScaleXY];
        sprintAnimation.velocity = [NSValue valueWithCGPoint:CGPointMake(8, 8)];
        sprintAnimation.springBounciness = 20.f;
        [self.sendBtn pop_addAnimation:sprintAnimation forKey:@"sendAnimation"];
    }
}

//赞按钮
-(void)setupZanBtn{
    self.zanBtn.hidden = NO;
    self.sendBtn.hidden = YES;
    POPSpringAnimation *spin = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerRotation];
    spin.fromValue = @(M_PI / 4);
    spin.toValue = @(0);
    spin.springBounciness = 20;
    spin.velocity = @(10);
    [self.zanBtn.layer pop_addAnimation:spin forKey:@"likeAnimation"];
}

未完待续。。。

勤学如早春之苗,不见其增,日有所涨。
辍学如磨刀之石,不见其减,日有所损。

相关文章

网友评论

  • 穆穆航:这是什么啊?怎么看不懂啊?

本文标题:POP学习总结

本文链接:https://www.haomeiwen.com/subject/wpqsettx.html