iOS AILinkBleSDK - 蓝牙SDK
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

CABasicAnimation+ELAnimation.m 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // CABasicAnimation+ELAnimation.m
  3. // Elink
  4. //
  5. // Created by iot_user on 2019/1/23.
  6. // Copyright © 2019年 iot_iMac. All rights reserved.
  7. //
  8. #import "CABasicAnimation+ELAnimation.h"
  9. #import <UIKit/UIKit.h>
  10. @implementation CABasicAnimation (ELAnimation)
  11. //
  12. +(CABasicAnimation *)scaleShowAnimationWithDuration:(CGFloat)duration{
  13. CABasicAnimation * animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
  14. animation.fromValue = [NSNumber numberWithInteger:0.0];
  15. animation.toValue = [NSNumber numberWithInteger:1.0];
  16. animation.duration = duration;
  17. animation.removedOnCompletion = NO;
  18. animation.fillMode = kCAFillModeForwards;
  19. return animation;
  20. }
  21. +(CABasicAnimation *)scaleHideAnimationWithDuration:(CGFloat)duration{
  22. CABasicAnimation * animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
  23. animation.fromValue = [NSNumber numberWithInteger:1.0];
  24. animation.toValue = [NSNumber numberWithInteger:0.0];
  25. animation.duration = duration;
  26. animation.removedOnCompletion = NO;
  27. animation.fillMode = kCAFillModeForwards;
  28. return animation;
  29. }
  30. +(CABasicAnimation *)positionAnimationWithBeginPoint:(CGPoint)beginPoint withEndPoint:(CGPoint)endPoint{
  31. CABasicAnimation * position =[CABasicAnimation animationWithKeyPath:@"position"];
  32. position.fromValue = [NSValue valueWithCGPoint:beginPoint];
  33. position.toValue = [NSValue valueWithCGPoint:endPoint];
  34. position.duration = ELAnimationDuration;
  35. position.removedOnCompletion = NO;
  36. position.fillMode = kCAFillModeForwards;
  37. position.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
  38. return position;
  39. }
  40. +(CABasicAnimation *)rotationAnimationWithBeginValue:(CGFloat)beginValue endValue:(CGFloat)endValue{
  41. CABasicAnimation *aniamtion = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
  42. aniamtion.fromValue = [NSNumber numberWithFloat:beginValue];
  43. aniamtion.toValue = [NSNumber numberWithFloat:endValue];
  44. aniamtion.duration = ELAnimationDuration;
  45. aniamtion.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
  46. aniamtion.repeatCount = 1;
  47. aniamtion.fillMode = kCAFillModeForwards;
  48. aniamtion.removedOnCompletion = NO;
  49. return aniamtion;
  50. }
  51. +(CABasicAnimation *)alphaAnimation{
  52. CABasicAnimation *aniamtion = [CABasicAnimation animationWithKeyPath:@"opacity"];
  53. aniamtion.fromValue = @1;
  54. aniamtion.toValue = @0.3;
  55. aniamtion.duration = ELAnimationDuration;
  56. aniamtion.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
  57. aniamtion.fillMode = kCAFillModeForwards;
  58. aniamtion.repeatCount = INFINITY;
  59. aniamtion.removedOnCompletion = YES;
  60. return aniamtion;
  61. }
  62. +(CABasicAnimation *)heightAnimation{
  63. CABasicAnimation *aniamtion = [CABasicAnimation animationWithKeyPath:@"scale.y"];
  64. aniamtion.fromValue = @0;
  65. aniamtion.toValue = @1;
  66. aniamtion.duration = ELAnimationDuration;
  67. aniamtion.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
  68. aniamtion.fillMode = kCAFillModeForwards;
  69. aniamtion.removedOnCompletion = NO;
  70. return aniamtion;
  71. }
  72. @end