UITextField抖动动画

冯星阑
2023-12-01
  1. @interface UITextField(shake)

  2. - (void)shake;

  3. @end

  4. @implementation UITextField(shake)

  5. - (void)shake {
  6.     CAKeyframeAnimation *animationKey = [CAKeyframeAnimation animationWithKeyPath:@"position"];
  7.     [animationKey setDuration:0.5f];
  8.     
  9.     NSArray *array = [[NSArray alloc] initWithObjects:
  10.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x, self.center.y)],
  11.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x-5, self.center.y)],
  12.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x+5, self.center.y)],
  13.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x, self.center.y)],
  14.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x-5, self.center.y)],
  15.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x+5, self.center.y)],
  16.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x, self.center.y)],
  17.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x-5, self.center.y)],
  18.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x+5, self.center.y)],
  19.                       [NSValue valueWithCGPoint:CGPointMake(self.center.x, self.center.y)],
  20.                       nil];
  21.     [animationKey setValues:array];
  22.     [array release];
  23.     
  24.     NSArray *times = [[NSArray alloc] initWithObjects:
  25.                       [NSNumber numberWithFloat:0.1f],
  26.                       [NSNumber numberWithFloat:0.2f],
  27.                       [NSNumber numberWithFloat:0.3f],
  28.                       [NSNumber numberWithFloat:0.4f],
  29.                       [NSNumber numberWithFloat:0.5f],
  30.                       [NSNumber numberWithFloat:0.6f],
  31.                       [NSNumber numberWithFloat:0.7f],
  32.                       [NSNumber numberWithFloat:0.8f],
  33.                       [NSNumber numberWithFloat:0.9f],
  34.                       [NSNumber numberWithFloat:1.0f],
  35.                       nil];
  36.     [animationKey setKeyTimes:times];
  37.     [times release];
  38.     
  39.     [self.layer addAnimation:animationKey forKey:@"TextFieldShake"];
  40. }

  41. @end
 类似资料: