MOClickNumView.m 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. //
  2. // MOClickNumView.m
  3. // MiMoLive
  4. //
  5. // Created by SuperC on 2024/4/26.
  6. //
  7. #import "MOClickNumView.h"
  8. #import "UILabel+MOBezierAnimation.h"
  9. @implementation MOClickNumView
  10. - (instancetype)init
  11. {
  12. if (self = [super init])
  13. {
  14. [self setupUI];
  15. }
  16. return self;
  17. }
  18. - (instancetype)initWithFrame:(CGRect)frame
  19. {
  20. self = [super initWithFrame:frame];
  21. if (self)
  22. {
  23. [self setupUI];
  24. }
  25. return self;
  26. }
  27. - (void)setupUI{
  28. [self addSubview:self.zuanImgView];
  29. [self.zuanImgView mas_makeConstraints:^(MASConstraintMaker *make) {
  30. make.right.equalTo(self).offset(15);
  31. make.centerY.equalTo(self).offset(3.0);
  32. make.width.height.equalTo(@30.0);
  33. }];
  34. [self addSubview:self.numLab];
  35. [self.numLab mas_makeConstraints:^(MASConstraintMaker *make) {
  36. make.right.equalTo(self).offset(-15.0);
  37. make.centerY.equalTo(self);
  38. make.height.equalTo(@30.0);
  39. make.width.greaterThanOrEqualTo(@30.0);
  40. }];
  41. }
  42. - (UIImageView *)zuanImgView{
  43. if(!_zuanImgView){
  44. _zuanImgView = [[UIImageView alloc] init];
  45. [_zuanImgView setImage:[UIImage imageNamed:@"icon_click_zuan"]];
  46. _zuanImgView.contentMode = UIViewContentModeScaleAspectFit;
  47. }
  48. return _zuanImgView;
  49. }
  50. - (UILabel *)numLab
  51. {
  52. if(!_numLab)
  53. {
  54. _numLab = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 100, 30.0)];
  55. _numLab.textColor = UIColorFromHex(0xFFFFFF);
  56. UIFont *customFont = [UIFont fontWithName:kNormalGiftNumFontStre size:MOClickNumViewFont];
  57. if(customFont){
  58. _numLab.font = customFont;
  59. }
  60. else{
  61. _numLab.font = [UIFont italicSystemFontOfSize:MOClickNumViewFont];
  62. }
  63. _numLab.textAlignment = NSTextAlignmentRight;
  64. _numLab.backgroundColor = [UIColor clearColor];
  65. _numLab.text = @"1";
  66. }
  67. return _numLab;
  68. }
  69. - (void)showViewWith:(UIView *)superView ShowNum:(NSInteger)num isGetZuan:(BOOL)isShowZuan{
  70. [superView addSubview:self];
  71. self.numLab.text = [NSString stringWithFormat:@"x%zd",num];
  72. if(isShowZuan){
  73. self.zuanImgView.hidden = NO;
  74. self.numLab.text = [NSString stringWithFormat:@"x%zd",num];
  75. // self.numLab.textColor = [MOTools colorWithHexString:@"#E72DD3" alpha:1.0];
  76. [self.numLab setGradientWithColors: @[(id)[MOTools colorWithHexString:@"#FFE76C" alpha:1.0].CGColor,(id)[MOTools colorWithHexString:@"#FF7519" alpha:1.0].CGColor] startPoint:CGPointMake(0.0, 0.3) endPoint:CGPointMake(0.0, 1.0)];
  77. [self.numLab mas_updateConstraints:^(MASConstraintMaker *make) {
  78. make.right.equalTo(self).offset(-15.0);
  79. }];
  80. [self.layer addSublayer:self.numLab.layer];
  81. [self.layer addSublayer:self.zuanImgView.layer];
  82. self.transform = CGAffineTransformMakeScale(0.6, 0.6);
  83. self.alpha = 0;
  84. [UIView animateWithDuration:0.2 animations:^
  85. {
  86. self.transform = CGAffineTransformMakeScale(1.0, 1.0);
  87. self.alpha = 1;
  88. } completion:^(BOOL finished)
  89. {
  90. [self zuanDismiiView];
  91. }];
  92. }
  93. else{
  94. self.zuanImgView.hidden = YES;
  95. // self.numLab.textColor = [UIColor whiteColor];
  96. [self.numLab setGradientWithColors: @[(id)[MOTools colorWithHexString:@"#FFFFFF" alpha:1.0].CGColor,(id)[MOTools colorWithHexString:@"#FFFFFF" alpha:1.0].CGColor] startPoint:CGPointMake(0.0, 0.3) endPoint:CGPointMake(0.0, 1.0)];
  97. [self.numLab mas_updateConstraints:^(MASConstraintMaker *make) {
  98. make.right.equalTo(self).offset(0.0);
  99. }];
  100. [self.layer addSublayer:self.numLab.layer];
  101. [self.layer addSublayer:self.zuanImgView.layer];
  102. self.transform = CGAffineTransformMakeScale(1.4, 1.4);
  103. self.alpha = 0;
  104. [UIView animateWithDuration:0.2 animations:^
  105. {
  106. self.transform = CGAffineTransformMakeScale(1.0, 1.0);
  107. self.alpha = 1;
  108. } completion:^(BOOL finished)
  109. {
  110. [self dismissView];
  111. }];
  112. }
  113. }
  114. - (void)dismissView{
  115. [UIView animateWithDuration:1.0 animations:^{
  116. self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y - 50, self.frame.size.width, self.frame.size.height);
  117. self.transform = CGAffineTransformScale(self.transform, 0.2, 0.2);
  118. self.alpha = 0.0;
  119. } completion:^(BOOL finished) {
  120. [self removeFromSuperview];
  121. }];
  122. }
  123. - (void)zuanDismiiView{
  124. [UIView animateWithDuration:1.0 animations:^{
  125. self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y - 50, self.frame.size.width, self.frame.size.height);
  126. self.transform = CGAffineTransformScale(self.transform, 1.2, 1.2);
  127. self.alpha = 0.0;
  128. } completion:^(BOOL finished) {
  129. [self removeFromSuperview];
  130. }];
  131. }
  132. @end