123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- //
- // 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
|