160 lines
4.6 KiB
Mathematica
160 lines
4.6 KiB
Mathematica
|
|
//
|
|||
|
|
// YYLuckyCircleView.m
|
|||
|
|
// YaYin
|
|||
|
|
//
|
|||
|
|
// Created by bj_szd on 2023/12/2.
|
|||
|
|
// Copyright © 2023 YaYin. All rights reserved.
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#import "YYLuckyCircleView.h"
|
|||
|
|
#import "ZYCircleProgressView.h"
|
|||
|
|
#import "ZWTimer.h"
|
|||
|
|
|
|||
|
|
@interface YYLuckyCircleView () <ZWTimerDelegate>
|
|||
|
|
{
|
|||
|
|
CAKeyframeAnimation* animation;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@property (nonatomic, strong) ZYCircleProgressView *progressView;
|
|||
|
|
|
|||
|
|
@property (nonatomic, strong) ZWTimer *timer;
|
|||
|
|
@property (nonatomic, assign) float leftSecond;
|
|||
|
|
|
|||
|
|
@property (nonatomic, strong) UIImageView *giftImgV;
|
|||
|
|
|
|||
|
|
@property (nonatomic, strong) UILabel *balanceLab;
|
|||
|
|
|
|||
|
|
@end
|
|||
|
|
|
|||
|
|
@implementation YYLuckyCircleView
|
|||
|
|
|
|||
|
|
- (instancetype)initWithFrame:(CGRect)frame
|
|||
|
|
{
|
|||
|
|
self = [super initWithFrame:frame];
|
|||
|
|
if (self) {
|
|||
|
|
[self createUI];
|
|||
|
|
}
|
|||
|
|
return self;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
- (void)createUI {
|
|||
|
|
// self.backgroundColor = kBlackColor;
|
|||
|
|
|
|||
|
|
WEAK_SELF
|
|||
|
|
[self dg_Tapped:^{
|
|||
|
|
[weakSelf onReSend];
|
|||
|
|
}];
|
|||
|
|
|
|||
|
|
self.giftImgV = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 56, 56)];
|
|||
|
|
self.giftImgV.contentMode = UIViewContentModeScaleAspectFit;
|
|||
|
|
[self addSubview:self.giftImgV];
|
|||
|
|
|
|||
|
|
[self shakeToShow:self.giftImgV];
|
|||
|
|
|
|||
|
|
self.balanceLab = [ControlCreator createLabel:self rect:CGRectZero text:@"" font:YBBoldFont(12) color:HEXCOLOR(0xFFE928) backguoundColor:nil align:NSTextAlignmentLeft lines:1];
|
|||
|
|
[self.balanceLab mas_makeConstraints:^(MASConstraintMaker *make) {
|
|||
|
|
make.centerX.mas_equalTo(0);
|
|||
|
|
make.bottom.equalTo(self.mas_top).offset(-2);
|
|||
|
|
}];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
- (void)setImgStr:(NSString *)imgStr {
|
|||
|
|
_imgStr = imgStr;
|
|||
|
|
|
|||
|
|
[self.giftImgV sd_setImageWithURL:[NSURL URLWithString:imgStr] placeholderImage:kDefaultUserIcon];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
- (void)setParamsDict:(NSDictionary *)paramsDict {
|
|||
|
|
_paramsDict = paramsDict;
|
|||
|
|
|
|||
|
|
[self onStartAnimate];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
- (void)setMoneyStr:(NSString *)moneyStr {
|
|||
|
|
_moneyStr = moneyStr;
|
|||
|
|
|
|||
|
|
self.balanceLab.text = [NSString stringWithFormat:@"余额:%ld", [moneyStr integerValue]];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
- (void)onReSend {
|
|||
|
|
[RCMicHTTP postWithURLString:@"/api/gift/send_gift" parameters:self.paramsDict response:^(RCMicHTTPResult *result) {
|
|||
|
|
if (result.success) {
|
|||
|
|
if (result.errorCode == 200) {
|
|||
|
|
// [HelpPageDefine showMessage:result.message];
|
|||
|
|
[self onStartAnimate];
|
|||
|
|
|
|||
|
|
self.balanceLab.text = [NSString stringWithFormat:@"余额:%ld", [result.content safeIntForKey:@"integral"]];
|
|||
|
|
|
|||
|
|
//自己送礼物的托盘,用接口展示
|
|||
|
|
NSArray *arr = [result.content safeArrayForKey:@"data"];
|
|||
|
|
for (NSDictionary *dict in arr) {
|
|||
|
|
//礼物托盘
|
|||
|
|
self.viewModel.receivedGiftTuopan? self.viewModel.receivedGiftTuopan(dict) : nil;
|
|||
|
|
}
|
|||
|
|
}else if (result.errorCode == 302) {
|
|||
|
|
//访问频繁,不提示
|
|||
|
|
}else {
|
|||
|
|
[SVProgressHUD showInfoWithStatus:result.message];
|
|||
|
|
}
|
|||
|
|
}else {
|
|||
|
|
[SVProgressHUD showInfoWithStatus:@"网络错误"];
|
|||
|
|
}
|
|||
|
|
}];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
- (void)onStartAnimate {
|
|||
|
|
if (self.progressView) {
|
|||
|
|
[self.progressView removeFromSuperview];
|
|||
|
|
self.progressView = nil;
|
|||
|
|
}
|
|||
|
|
ZYCircleProgressView *progressView = [[ZYCircleProgressView alloc] initWithFrame:CGRectMake(0, 0, 66, 66)];
|
|||
|
|
progressView.progress = 0.0;
|
|||
|
|
[self insertSubview:progressView atIndex:0];
|
|||
|
|
self.progressView = progressView;
|
|||
|
|
|
|||
|
|
self.leftSecond = 0;
|
|||
|
|
[self.timer startGCDTimer:0.01 delegate:self];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
- (void)onTimerFired:(ZWTimer *)timer {
|
|||
|
|
self.leftSecond += 0.01;
|
|||
|
|
self.progressView.progress = self.leftSecond*0.143;
|
|||
|
|
// NSLog(@"转圈进度---%.2f", self.progressView.progress);
|
|||
|
|
if (self.leftSecond >= 7) {
|
|||
|
|
[self.timer stopTimer];
|
|||
|
|
|
|||
|
|
[self removeFromSuperview];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
- (ZWTimer *)timer {
|
|||
|
|
if (!_timer) {
|
|||
|
|
_timer = [[ZWTimer alloc] init];
|
|||
|
|
}
|
|||
|
|
return _timer;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/** 设置缩放动画 */
|
|||
|
|
- (void) shakeToShow:(UIView*)aView
|
|||
|
|
{
|
|||
|
|
animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
|
|||
|
|
|
|||
|
|
animation.duration = 1.5;// 动画时间
|
|||
|
|
animation.repeatCount = 100000;
|
|||
|
|
NSMutableArray *values = [NSMutableArray array];
|
|||
|
|
|
|||
|
|
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.8, 0.8, 1.0)]];
|
|||
|
|
|
|||
|
|
// 这三个数字,我只研究了前两个,所以最后一个数字我还是按照它原来写1.0;前两个是控制view的大小的;
|
|||
|
|
|
|||
|
|
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1, 1, 1.0)]];
|
|||
|
|
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.8, 0.8, 1.0)]];
|
|||
|
|
|
|||
|
|
animation.values = values;
|
|||
|
|
|
|||
|
|
[aView.layer addAnimation:animation forKey:@"iconAnimation"];
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@end
|