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];
}
}