UpgradeTipView.m 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. //
  2. // UpgradeTipView.m
  3. // BuguLive
  4. //
  5. // Created by xfg on 2017/7/15.
  6. // Copyright © 2017年 xfg. All rights reserved.
  7. //
  8. #import "UpgradeTipView.h"
  9. @implementation UpgradeTipView
  10. #pragma mark - ----------------------- 首次登陆奖励和升级提示消息 -----------------------
  11. #pragma mark 每日首次登陆奖励和升级提示消息的初始化
  12. - (void)initRewards
  13. {
  14. //延迟三秒,以防跟广告图冲突
  15. NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
  16. NSNumber *haveLanch = [userDefaults objectForKey:@"haveLanch"];
  17. if ([haveLanch boolValue] == YES)
  18. {
  19. [self performSelector:@selector(loginRewards) withObject:nil afterDelay:3];
  20. }
  21. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(loginRewards) name:@"rewardView" object:nil];
  22. }
  23. #pragma mark 每日首次登陆奖励和升级提示消息
  24. - (void)loginRewards
  25. {
  26. //灰色背景
  27. if (!_grayView)
  28. {
  29. _grayView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kScreenW, kScreenH)];
  30. _grayView.backgroundColor = kGrayTransparentColor6;
  31. _grayView.hidden = YES;
  32. _grayView.alpha = 0.5;
  33. [kCurrentWindow addSubview:_grayView];
  34. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapClick)];
  35. [_grayView addGestureRecognizer:tap];
  36. }
  37. if (!_rewardView)
  38. {
  39. _rewardView = [LoginRewardView EditNibFromXib];
  40. _rewardView.hidden = YES;
  41. _rewardView.frame = CGRectMake((kScreenW-300)/2, kScreenH, 300, 302);
  42. _rewardView.backgroundColor = [UIColor clearColor];
  43. _rewardView.bgView.backgroundColor = [UIColor clearColor];
  44. _rewardView.displayView.layer.cornerRadius = 15;
  45. _rewardView.displayView.backgroundColor = kNavBarThemeColor;
  46. _rewardView.rewardLabel.textColor = kAppGrayColor1;
  47. _rewardView.exLabel.textColor = kAppGrayColor3;
  48. _rewardView.comfirmBtn.layer.cornerRadius = 5;
  49. [_rewardView.comfirmBtn setTitleColor:kNavBarThemeColor forState:UIControlStateNormal];
  50. _rewardView.comfirmBtn.titleLabel.font = [UIFont systemFontOfSize:17];
  51. _rewardView.comfirmBtn.backgroundColor = kAppMainColor;
  52. [kCurrentWindow addSubview:_rewardView];
  53. FWWeakify(self)
  54. _rewardView.rewardBlock = ^(){
  55. if (fwwo)
  56. {
  57. [fwwo rewardAction];
  58. }
  59. else
  60. {
  61. [self rewardAction];
  62. }
  63. };
  64. }
  65. if (!_upgradeView)
  66. {
  67. _upgradeView = [UpgradeView EditNibFromXib];
  68. _upgradeView.hidden = YES;
  69. _upgradeView.frame = CGRectMake((kScreenW-300)/2, kScreenH, 300, 302);
  70. _upgradeView.backgroundColor = [UIColor clearColor];
  71. _upgradeView.bgView.backgroundColor = [UIColor clearColor];
  72. _upgradeView.displayView.layer.cornerRadius = 15;
  73. _upgradeView.displayView.backgroundColor = kNavBarThemeColor;
  74. _upgradeView.upgradeLabel.textColor = kAppGrayColor1;
  75. _upgradeView.exLabel.textColor = kAppGrayColor3;
  76. _upgradeView.comfirmBtn.layer.cornerRadius = 5;
  77. [_upgradeView.comfirmBtn setTitleColor:kNavBarThemeColor forState:UIControlStateNormal];
  78. _upgradeView.comfirmBtn.titleLabel.font = [UIFont systemFontOfSize:17];
  79. _upgradeView.comfirmBtn.backgroundColor = kAppMainColor;
  80. [kCurrentWindow addSubview:_upgradeView];
  81. FWWeakify(self)
  82. _upgradeView.upgradeBlock = ^(){
  83. if (fwwo)
  84. {
  85. [fwwo upgradeAction];
  86. }
  87. else
  88. {
  89. [self upgradeAction];
  90. }
  91. };
  92. }
  93. _rewardView.exLabel.text = [NSString stringWithFormat:ASLocalizedString(@"经验+%@"),self.BuguLive.appModel.login_send_score];
  94. _upgradeView.upgradeLabel.text = [NSString stringWithFormat:ASLocalizedString(@"恭喜您升到%ld级!"),(long)self.BuguLive.appModel.new_level];
  95. NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
  96. NSNumber *haveLanch = [userDefaults objectForKey:@"haveLanch"];
  97. if ([haveLanch boolValue] == YES )
  98. {
  99. [[NSUserDefaults standardUserDefaults]setObject:@(NO) forKey:@"haveLanch"];
  100. //既是每日首次登录,等级又提升了(先弹出登录提示再弹出升级提示)
  101. if ([self isRewardAndUpgrade])
  102. {
  103. [self promptRewardView];;
  104. }
  105. else
  106. {
  107. //是否有每日首次登入经验奖励
  108. if ([self.BuguLive.appModel.first_login isEqualToString:@"1"] )
  109. {
  110. [self promptRewardView];
  111. }
  112. //是否升级了
  113. if (self.BuguLive.appModel.new_level > 0 && self.BuguLive.appModel.open_upgrade_prompt == 1)
  114. {
  115. [self promptUpgradeView];
  116. }
  117. }
  118. }
  119. }
  120. - (void)rewardAction
  121. {
  122. [UIView animateWithDuration:0.3 animations:^{
  123. self.rewardView.frame = CGRectMake((kScreenW-300)/2, kScreenH, 300, 302);
  124. self.grayView.hidden = YES;
  125. }completion:^(BOOL finished){
  126. self.rewardView.hidden = YES;
  127. }];
  128. if ([self isRewardAndUpgrade])
  129. {
  130. self.isAppear = !self.isAppear;
  131. [self promptUpgradeView];
  132. }
  133. }
  134. - (void)upgradeAction
  135. {
  136. [UIView animateWithDuration:0.3 animations:^{
  137. self.upgradeView.frame = CGRectMake((kScreenW-300)/2, kScreenH, 300, 302);
  138. self.grayView.hidden = YES;
  139. }completion:^(BOOL finished) {
  140. self.upgradeView.hidden = YES;
  141. }];
  142. if ([self isRewardAndUpgrade])
  143. {
  144. self.isAppear = !self.isAppear;
  145. }
  146. }
  147. #pragma mark 是否有每日升级提示,又有等级提升
  148. - (BOOL)isRewardAndUpgrade
  149. {
  150. //既是每日首次登录,等级又提升了
  151. if ([self.BuguLive.appModel.first_login isEqualToString:@"1"] && self.BuguLive.appModel.new_level > 0 && self.BuguLive.appModel.open_upgrade_prompt == 1)
  152. {
  153. return YES;
  154. }
  155. else
  156. {
  157. return NO;
  158. }
  159. }
  160. #pragma mark 每日首次登录动画
  161. - (void)promptRewardView
  162. {
  163. //放在视图最前面
  164. [kCurrentWindow bringSubviewToFront:_grayView];
  165. [kCurrentWindow bringSubviewToFront:_rewardView];
  166. [UIView animateWithDuration:0.3 animations:^{
  167. _rewardView.frame = CGRectMake((kScreenW-300)/2, (kScreenH-302)/2-64, 300, 302);
  168. _grayView.hidden = NO;
  169. _rewardView.hidden = NO;
  170. }];
  171. }
  172. #pragma mark 等级升级提示
  173. - (void)promptUpgradeView
  174. {
  175. //放在视图最前面
  176. [kCurrentWindow bringSubviewToFront:_grayView];
  177. [kCurrentWindow bringSubviewToFront:_upgradeView];
  178. [UIView animateWithDuration:0.3 animations:^{
  179. _upgradeView.frame = CGRectMake((kScreenW-300)/2, (kScreenH-302)/2-64, 300, 302);
  180. _grayView.hidden = NO;
  181. _upgradeView.hidden = NO;
  182. }];
  183. }
  184. #pragma mark _grayView的点击事件
  185. - (void)tapClick
  186. {
  187. if ([self isRewardAndUpgrade])
  188. {
  189. _isAppear = !_isAppear;
  190. }
  191. if (_rewardView.hidden == NO)
  192. {
  193. [UIView animateWithDuration:0.2 animations:^{
  194. _rewardView.frame = CGRectMake((kScreenW-300)/2, kScreenH, 300, 302);
  195. _grayView.hidden = YES;
  196. }completion:^(BOOL finished) {
  197. _rewardView.hidden = YES;
  198. }];
  199. }
  200. if (_upgradeView.hidden == NO)
  201. {
  202. [UIView animateWithDuration:0.2 animations:^{
  203. _upgradeView.frame = CGRectMake((kScreenW-300)/2, kScreenH, 300, 302);
  204. _grayView.hidden = YES;
  205. }completion:^(BOOL finished) {
  206. _upgradeView.hidden = YES;
  207. }];
  208. }
  209. if ([self isRewardAndUpgrade] && _isAppear == YES)
  210. {
  211. [self promptUpgradeView];
  212. }
  213. }
  214. @end