iOS ~ ShapeLayer、CABasicAnimatio

2022-03-30  本文已影响0人  阳光下的叶子呵

(实现左右摇晃,并伴随着震动)

#pragma mark 输入错误抖动动画
- (void)shakeAnimationForView
{
    // 获取当前View的位置
    CGPoint position = self.selectLayer.position;
    // 移动的两个终点位置
    CGPoint x = CGPointMake(position.x + 3, position.y);
    CGPoint y = CGPointMake(position.x - 3, position.y);
    // 设置动画
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
    // 设置运动形式
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
    // 设置开始位置
    [animation setFromValue:[NSValue valueWithCGPoint:x]];
    // 设置结束位置
    [animation setToValue:[NSValue valueWithCGPoint:y]];
    // 设置自动反转
    [animation setAutoreverses:YES];
    // 设置时间
    [animation setDuration:.08];
    // 设置次数
    [animation setRepeatCount:3];
    // 添加上动画
    [self.selectLayer addAnimation:animation forKey:nil];

    // 轻触反馈(添加震动效果)
    if (@available(iOS 10.0, *)){
        UIImpactFeedbackGenerator *feedBackGenertor = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleLight];
        [feedBackGenertor impactOccurred];
     }
}
上一篇下一篇

猜你喜欢

热点阅读