// // YXGuideViewController.m // Temperature // // Created by gtjx-z on 2025/2/27. // #import "YXGuideViewController.h" #import "UIImageView+webImage.h" @interface YXGuideViewController () @property (nonatomic, copy) NSString *imgUrlStr; @property (nonatomic, weak) UIImageView *guideImgView; @property (nonatomic, weak) UIButton *closeBtn; @property (nonatomic, strong) dispatch_source_t timer; @end @implementation YXGuideViewController - (void)viewDidLoad { [super viewDidLoad]; self.closeBtn.hidden = YES; [self createGuidePage]; [self p_getGuideImg]; } - (void)p_getGuideImg { RDS_WEAKSELF(weakSelf) [RDSDemoApiHelper rds_getGuideImgSuccess:^(id responseObject) { if ([responseObject[@"code"] intValue] == 0) { DDLog(@"引导页获取成功"); NSDictionary *dataDic = responseObject[@"data"]; NSArray *listArray = dataDic[@"list"]; if (listArray.count > 0) { NSDictionary *imgDic = listArray.firstObject; NSString *imgUrl = imgDic[@"url"]; if (imgUrl != nil) { NSString *urlStr = [NSString stringWithFormat:@"%@%@",kBaseUrlHeadImg,imgDic[@"url"]]; [weakSelf.guideImgView rds_downloadImage:urlStr placeHoler:nil]; [weakSelf startTimer]; } } } else{ DDLog(@"引导页获取失败:%@",responseObject[@"message"]); [self removeFromParentViewController]; [self.view removeFromSuperview]; } } failure:^(NSError *error) { [self removeFromParentViewController]; [self.view removeFromSuperview]; }]; } -(void)createGuidePage { UIImageView *guideImgView = [[UIImageView alloc]initWithFrame:self.view.bounds]; [self.view addSubview:guideImgView]; self.guideImgView = guideImgView; UIButton *closeBtn = [UIButton buttonWithType:UIButtonTypeCustom]; closeBtn.frame = CGRectMake(SCREEN_WIDTH - 120, 60, 90, 30); closeBtn.tintColor = kTextColor; closeBtn.backgroundColor = [UIColor colorWithHexString:@"#000000" alpha:0.2]; [closeBtn setTitle:@"跳过" forState:UIControlStateNormal]; [closeBtn addTarget:self action:@selector(closeGuideView) forControlEvents:UIControlEventTouchUpInside]; closeBtn.layer.cornerRadius = 15; closeBtn.hidden = YES; [self.view addSubview:closeBtn]; self.closeBtn = closeBtn; } -(void)closeGuideView { [self removeFromParentViewController]; [self.view removeFromSuperview]; if (self.closeBlock) { self.closeBlock(); } } -(void)startTimer { __block int timeout = 3; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行 dispatch_source_set_event_handler(_timer, ^{ if(timeout <= 0) { //倒计时结束 dispatch_async(dispatch_get_main_queue(), ^{ [self removeFromParentViewController]; [self.view removeFromSuperview]; }); } else { // NSString *strTime = [NSString stringWithFormat:@"%ds跳过",timeout]; // dispatch_async(dispatch_get_main_queue(), ^{ // //设置界面的按钮显示 根据自己需求设置 // [self.closeBtn setTitle:strTime forState:UIControlStateNormal]; // }); timeout--; } }); dispatch_resume(_timer); } -(void)dealloc{ if (_timer != nil) { dispatch_suspend(_timer); _timer = nil; } } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end