| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507 |
- //
- // turntableView.m
- // yunbaolive
- //
- // Created by IOS1 on 2019/6/5.
- // Copyright © 2019 cat. All rights reserved.
- //
- #import "turntableView.h"
- #import "turntableRuleView.h"
- #import "turntableRecordView.h"
- #import "turntableResultView.h"
- @implementation turntableView{
- UIView *bottomView;
- UIImageView *turntableImgView;
- UIButton *startButton;
- NSDictionary *awards;
- NSArray *levellist;
- NSArray *turngiftlist;
- CGFloat startValue;
- CGFloat endValue;
- int resultIndex;
- NSMutableArray *typeBtnArray;
- NSDictionary *typeDic;
-
- UIImageView *priceView;
- UILabel *priceLabel;
-
- turntableRuleView *ruleView;
- turntableRecordView *recordView;
- turntableResultView *resultView;
- NSArray *resultGiftArray;
- }
- - (void)doHideSelf{
- [UIView animateWithDuration:0.3 animations:^{
- bottomView.y = _window_height;
- } completion:^(BOOL finished) {
- self.hidden = YES;
- }];
- }
- - (void)show{
- self.hidden = NO;
- [UIView animateWithDuration:0.3 animations:^{
- // bottomView.y = _window_height * 0.33 - ShowDiff;
- bottomView.y = _window_height -447 ;//- ShowDiff;
- }];
- }
- -(instancetype)init{
- if (self = [super init]) {
- self.frame = CGRectMake(0, 0, _window_width, _window_height);
- startValue = 0;
- [self creatUI];
- }
- return self;
- }
- - (void)creatUI{
- UIButton *button = [UIButton buttonWithType:0];
- // button.frame = CGRectMake(0, 0, _window_width, _window_height * 0.33 - ShowDiff);
-
- button.frame = CGRectMake(0, 0, _window_width, _window_height -447);
- [button addTarget:self action:@selector(doHideSelf) forControlEvents:UIControlEventTouchUpInside];
- [self addSubview:button];
- // bottomView = [[UIView alloc]initWithFrame:CGRectMake(0, _window_height, _window_width, _window_height * 0.67 + ShowDiff)];
- bottomView = [[UIView alloc]initWithFrame:CGRectMake(0, _window_height, _window_width, 447)];
- bottomView.backgroundColor = [UIColor clearColor];
- [self addSubview:bottomView];
- UIImageView *imageV = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, _window_width, bottomView.height)];
- imageV.contentMode = UIViewContentModeScaleAspectFill;
- imageV.image = [UIImage imageNamed:@"turntable_转盘背景"];
- [bottomView addSubview:imageV];
-
- UIImageView *ddd = [[UIImageView alloc]init];
- ddd.image = [UIImage imageNamed:@"大转盘底座"];
- [bottomView addSubview:ddd];
- UIImageView *yinyingImageView = [[UIImageView alloc]init];
- yinyingImageView.image = [UIImage imageNamed:@"turntable_转盘阴影"];
- [bottomView addSubview:yinyingImageView];
- [yinyingImageView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(bottomView);
- make.width.equalTo(bottomView).multipliedBy(0.89);
- make.centerY.equalTo(bottomView).multipliedBy(0.915);
- make.height.equalTo(yinyingImageView.mas_width);
- }];
-
- turntableImgView = [[UIImageView alloc]init];
- turntableImgView.image = [UIImage imageNamed:@"turntable_转盘_new"];
- [bottomView addSubview:turntableImgView];
- [turntableImgView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.center.equalTo(yinyingImageView);
- make.width.equalTo(bottomView).multipliedBy(0.73);
- make.height.equalTo(turntableImgView.mas_width);
- }];
- UIImageView *turntableBack = [[UIImageView alloc]init];
- turntableBack.image = [UIImage imageNamed:@"turntable_转盘3"];
- [bottomView addSubview:turntableBack];
- [turntableBack mas_makeConstraints:^(MASConstraintMaker *make) {
- make.center.equalTo(turntableImgView);
- make.width.equalTo(turntableImgView).multipliedBy(1.15);
- make.height.equalTo(turntableImgView).multipliedBy(1.15);
- }];
- [ddd mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(turntableImgView.mas_centerY);
- make.bottom.equalTo(bottomView.mas_bottom).offset(-50);
- make.centerX.equalTo(bottomView);
- make.width.equalTo(self).multipliedBy(0.55);
- }];
- awards = @{
- @"0": @[
- @{
- @"min": @4,
- @"max":@41
- },
- ],
- @"1":@[
- @{
- @"min": @49,
- @"max":@86
- }
- ],
- @"2":@[
- @{
- @"min": @94,
- @"max":@131
- }
- ] ,
- @"3":@[
- @{
- @"min": @139,
- @"max":@176
- }
- ],
- @"4": @[
- @{
- @"min": @184,
- @"max":@221
- }
- ],
- @"5":@[
- @{
- @"min": @229,
- @"max":@266
- }
- ],
- @"6":@[
- @{
- @"min": @274,
- @"max":@311
- }
- ],
- @"7":@[
- @{
- @"min": @319,
- @"max":@356
- }
- ]
- };
- [bottomView layoutIfNeeded];
- [self requestData];
- [UIView animateWithDuration:0.3 animations:^{
- bottomView.y = button.bottom;
- }];
- }
- - (void)requestData{
- [YBNetworking postWithUrl:@"Turntable.GetTurntable" Dic:nil Suc:^(int code, id info, NSString *msg) {
- if (code == 0) {
- NSDictionary *infoDic = [info firstObject];
- levellist = [infoDic valueForKey:@"config"];
- turngiftlist = [infoDic valueForKey:@"list"];
- [self creatLastView];
- }
- } Fail:^(id fail) {
-
- }];
- }
- - (void)creatLastView{
- for (int i = 0; i < turngiftlist.count; i++) {
- NSDictionary *dic = turngiftlist[i];
- UIView *view = [[UIView alloc]initWithFrame:CGRectMake(turntableImgView.width/2-60, 0, 120, turntableImgView.width)];
- [turntableImgView addSubview:view];
-
-
- UIImageView *ImgV = [[UIImageView alloc]init];
- ImgV.contentMode = UIViewContentModeScaleAspectFit;
- [view addSubview:ImgV];
- if ([minstr([dic valueForKey:@"type"]) isEqual:@"2"]) {
- [ImgV sd_setImageWithURL:[NSURL URLWithString:minstr([dic valueForKey:@"thumb"])]];
- [ImgV mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(view);
- make.centerY.equalTo(view).multipliedBy(0.45);
- make.width.height.mas_equalTo(35);
- }];
- }else{
- UILabel *label = [[UILabel alloc]init];
- label.textAlignment = NSTextAlignmentCenter;
- label.textColor = [UIColor whiteColor];
- label.numberOfLines = 0;
- label.adjustsFontSizeToFitWidth = YES;
- [view addSubview:label];
- NSString *nameStr = minstr([dic valueForKey:@"type_val"]);
-
- if ([minstr([dic valueForKey:@"type"]) isEqual:@"0"]) {
- label.font = [UIFont boldSystemFontOfSize:12];
- label.numberOfLines = 0;
- label.text = YZMsg(@"再接再厉");
- [label mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(view);
- make.centerY.equalTo(view).multipliedBy(0.5);
- make.width.equalTo(view.mas_width).multipliedBy(0.5);
- }];
-
- }else{
- label.text = nameStr;
- label.font = [UIFont systemFontOfSize:10];
- // ImgV.image = [UIImage imageNamed:@"logFirst_钻石"];
- [ImgV sd_setImageWithURL:[NSURL URLWithString:minstr([dic valueForKey:@"thumb"])]];
- [ImgV mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(view);
- make.centerY.equalTo(view).multipliedBy(0.45);
- make.width.height.mas_equalTo(30);
- }];
-
- [label mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(view);
- make.height.mas_equalTo(20);
- make.top.equalTo(ImgV.mas_bottom);
- }];
-
- }
- }
- if (minstr([dic valueForKey:@"thumb"]).length > 6) {
- }else{
-
-
- }
- // if (i != 0) {
- NSDictionary *radiusDic = [[awards valueForKey:[NSString stringWithFormat:@"%d",i]] firstObject];
- CGFloat aa = ([minstr([radiusDic valueForKey:@"max"]) floatValue] - [minstr([radiusDic valueForKey:@"min"]) floatValue])/2+[minstr([radiusDic valueForKey:@"min"]) floatValue];
- view.transform = CGAffineTransformMakeRotation(radians(aa));
- // }
- }
- startButton = [UIButton buttonWithType:0];
- // startButton.size = CGSizeMake(_window_width*0.2, _window_width*0.2);
- // startButton.center = turntableImgView.center;
- [startButton setImage:[UIImage imageNamed:getImagename(@"turntable_开始指针")] forState:0];
- [startButton addTarget:self action:@selector(startButtonClick) forControlEvents:UIControlEventTouchUpInside];
- [bottomView addSubview:startButton];
- [startButton mas_makeConstraints:^(MASConstraintMaker *make) {
- make.center.equalTo(turntableImgView);
- make.width.equalTo(bottomView).multipliedBy(0.32);
- make.height.equalTo(startButton.mas_width);
- }];
- typeBtnArray = [NSMutableArray array];
- typeDic = levellist[0];
- // CGFloat hhhhhh = startButton.bottom + 20;
- for (int i = 0 ; i < levellist.count; i ++) {
- NSDictionary *dic = levellist[i];
- UIButton *btn = [UIButton buttonWithType:0];
- btn.titleLabel.font = [UIFont systemFontOfSize:13];
- btn.titleLabel.numberOfLines = 2;
- btn.titleLabel.textColor = [UIColor whiteColor];
- [btn setAttributedTitle:[self buttonAttributedString:[NSString stringWithFormat:YZMsg(@"转%@次"),minstr([dic valueForKey:@"times"])] andCoin:minstr([dic valueForKey:@"coin"])] forState:0];
- btn.titleLabel.textAlignment = NSTextAlignmentCenter;
- [btn setBackgroundImage:[UIImage imageNamed:@"turntable_btn_sel"] forState:UIControlStateSelected];
- [btn setBackgroundImage:[UIImage imageNamed:@"turntable_btn_nor"] forState:UIControlStateNormal];
- [btn addTarget:self action:@selector(typeBtnClick:) forControlEvents:UIControlEventTouchUpInside];
- btn.tag = 10086+i;
- btn.selected = NO;
- [bottomView addSubview:btn];
- [btn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerY.equalTo(bottomView).multipliedBy(1.81);
- make.left.equalTo(bottomView).offset(_window_width*0.04+i*(_window_width*0.32));
- make.width.mas_equalTo(_window_width *0.28);
- make.height.equalTo(btn.mas_width).multipliedBy(0.43);
- }];
- [typeBtnArray addObject:btn];
- if (i == 0) {
- btn.selected = YES;
- }
- // if (i == 0) {
- // priceView = [[UIImageView alloc]initWithFrame:CGRectMake(btn.x+btn.width*0.135, btn.top - btn.height*0.6, btn.width*0.73, btn.height * 0.7)];
- // priceView.image = [UIImage imageNamed:@"turntable_price"];
- // [bottomView addSubview:priceView];
- // priceView.hidden = YES;
- // priceLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, priceView.width, priceView.height * 0.9)];
- // priceLabel.font = [UIFont systemFontOfSize:11];
- // priceLabel.textAlignment = NSTextAlignmentCenter;
- // [priceView addSubview:priceLabel];
- // [PublicObj lineViewWithFrame:CGRectMake(0, btn.bottom, _window_width, 1) andColor:RGB_COLOR(@"#343535", 1) andView:bottomView];
- // hhhhhh = (btn.bottom+1);
- // }
- }
- NSArray *array = @[YZMsg(@"游戏规则"),YZMsg(@"中奖记录")];
- for (int i = 0; i < array.count; i ++) {
- UIButton *buton = [UIButton buttonWithType:0];
- buton.frame = CGRectMake(15 + i * (_window_width-80-15), 20, 64, 24);
- [buton setTitle:array[i] forState:0];
- // [buton setBackgroundColor:[[UIColor blackColor]colorWithAlphaComponent:0.2]];
- [buton setTitleColor:[UIColor whiteColor] forState:0];
- buton.titleLabel.font = SYS_Font(11);
- buton.layer.cornerRadius = 12.0;
- buton.layer.borderWidth = 1;
- buton.layer.borderColor = [UIColor whiteColor].CGColor;
- buton.layer.masksToBounds = YES;
- [buton addTarget:self action:@selector(bottomButtonClick:) forControlEvents:UIControlEventTouchUpInside];
- buton.tag = 7655 + i;
- buton.titleLabel.adjustsFontSizeToFitWidth = YES;
- [bottomView addSubview:buton];
- }
- }
- //角度转弧度
- double radians(float degrees) {
- return degrees*M_PI/180;
- }
- - (void)startButtonClick{
- // if (typeDic) {
- [self requestReasult];
-
- // }else{
- // [MBProgressHUD showError:@"请选择转盘价格"];
- // }
- }
- - (void)requestReasult{
- startButton.userInteractionEnabled = NO;
-
- [YBNetworking postWithUrl:@"Turntable.Turn" Dic:@{@"id":minstr([typeDic valueForKey:@"id"]),@"liveuid":minstr([_zhuboMsg valueForKey:@"uid"]),@"stream":minstr([_zhuboMsg valueForKey:@"stream"])} Suc:^(int code, id info, NSString *msg) {
- if (code == 0) {
- NSDictionary *rDic = [info firstObject];
- [Config saveUserCoin:minstr([rDic valueForKey:@"coin"])];
-
- resultGiftArray = [rDic valueForKey:@"list"];
- resultIndex = 0;
- NSDictionary *infoDic;
- if ([resultGiftArray count] > 0) {
- infoDic = [resultGiftArray lastObject];
- if (self.delegate) {
- [self.delegate turntableZhongjianla];
- }
- }else{
- infoDic = @{@"type":@"0"};
- }
- for (int i = 0; i < turngiftlist.count; i ++) {
- NSDictionary *dic = turngiftlist[i];
- if ([minstr([infoDic valueForKey:@"type"]) isEqual:@"0"]) {
- if ([minstr([dic valueForKey:@"type"]) isEqual:@"0"]) {
- resultIndex = i;
- }
-
- }else{
- if ([minstr([infoDic valueForKey:@"id"]) isEqual:minstr([dic valueForKey:@"id"])]) {
- resultIndex = i;
- }
- }
- }
- //resultIndex = arc4random()%8;
-
- endValue = [self fetchResult];
- CABasicAnimation* rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
- rotationAnimation.delegate = self;
- rotationAnimation.fromValue = @(startValue);
- rotationAnimation.toValue = @(endValue);
- rotationAnimation.duration = 3.0f;
- rotationAnimation.autoreverses = NO;
- rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- rotationAnimation.removedOnCompletion = NO;
- rotationAnimation.fillMode = kCAFillModeBoth;
- [turntableImgView.layer addAnimation:rotationAnimation forKey:@"revItUpAnimation"];
-
- }else{
- startButton.userInteractionEnabled = YES;
- [MBProgressHUD showError:msg];
- }
- } Fail:^(id fail) {
- startButton.userInteractionEnabled = YES;
- [MBProgressHUD showError:YZMsg(@"网络错误")];
- }];
-
- }
- - (CGFloat)fetchResult{
- srand((unsigned)time(0));
- float random;
- for (NSString *str in [awards allKeys]) {
- if ([str intValue] == resultIndex) {
- int bb;
- if (resultIndex == 0) {
- bb = arc4random()%2;
- }else{
- bb = 0;
- }
- NSDictionary *content = awards[str][bb];
- int min = [content[@"min"] intValue];
- int max = [content[@"max"] intValue];
- srand((unsigned)time(0));
- random = rand() % (max - min) +min;
- }
- }
- // return radians(random + 360*5);
- return (M_PI*2 - radians(random)) + M_PI*2*5;
- }
- -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{
- startButton.userInteractionEnabled = YES;
- startValue = endValue;
-
- if (startValue >= endValue) {
- startValue = startValue - radians(360*10);
- }
-
- NSLog(@"startValue = %f",startValue);
- NSLog(@"endValue = %f\n",endValue);
- // if (resultIndex == 0) {
- // [MBProgressHUD showError:@"谢谢参与,再接再厉"];
- // }else{
- if (resultView) {
- [resultView removeFromSuperview];
- resultView = nil;
- }
- // NSArray *aaa = @[@"",@"",@"",@"",@"",@""];
- if (resultGiftArray.count > 0) {
- resultView = [[turntableResultView alloc]initWithResultArray:resultGiftArray];
- [self addSubview:resultView];
- }
- // [MBProgressHUD showError:[NSString stringWithFormat:@"恭喜你,获得%@",minstr([turngiftlist[resultIndex] valueForKey:@"giftname"])]];
- // }
- }
- #pragma mark ============jiage=============
- - (void)typeBtnClick:(UIButton *)sender{
- // if (sender.selected) {
- // typeDic = nil;
- // sender.selected = NO;
- // sender.imageView.transform = CGAffineTransformMakeScale(1, 1);
- // priceView.hidden = YES;
- // return;
- // }
- for (int i = 0; i < typeBtnArray.count; i ++) {
- UIButton *btn = typeBtnArray[i];
- if (btn == sender) {
- btn.selected = YES;
- typeDic = levellist[i];
- // btn.imageView.transform = CGAffineTransformMakeScale(2, 2);
- // priceLabel.text = [NSString stringWithFormat:@"%@%@",minstr([typeDic valueForKey:@"coin"]),[common name_coin]];
- // priceView.centerX = btn.centerX;
- // priceView.hidden = NO;
- }else{
- btn.selected = NO;
- // btn.imageView.transform = CGAffineTransformMakeScale(1, 1);
- }
- }
- }
- - (void)bottomButtonClick:(UIButton *)sender{
- if (sender.tag == 7655) {
- if (!ruleView) {
- ruleView = [[turntableRuleView alloc]init];
- [self addSubview:ruleView];
- }else{
- ruleView.hidden = NO;
- [ruleView show];
- }
- }else{
- if (!recordView) {
- recordView = [[turntableRecordView alloc]init];
- [self addSubview:recordView];
- }else{
- recordView.hidden = NO;
- [recordView show];
- }
- }
- }
- - (NSAttributedString *)buttonAttributedString:(NSString *)name andCoin:(NSString *)coin{
- NSString *btnNameStr1 = [NSString stringWithFormat:@"%@\n%@%@",name,coin,[common name_coin]];
- NSMutableAttributedString *AttributedStr1 = [[NSMutableAttributedString alloc]initWithString:btnNameStr1];
- [AttributedStr1 addAttribute:NSForegroundColorAttributeName
- value:[[UIColor whiteColor] colorWithAlphaComponent:0.5]
- range:NSMakeRange(name.length, btnNameStr1.length-name.length)];
- [AttributedStr1 addAttribute:NSFontAttributeName
- value:[UIFont systemFontOfSize:10]
- range:NSMakeRange(name.length, btnNameStr1.length-name.length)];
-
- return AttributedStr1;
- }
- @end
|