zoukankan      html  css  js  c++  java
  • 启动图后面 添加有倒计时的广告图

    今天闲来无事,看到很多APP在启动图后面添加了广告图,今天就动手做了一下,

    刚开始,打算用通知在APPdelegate中添加这个图片,但是尝试后发现,效果不是很理想;就在rootVC中进行操作了

    直接上代码:

    -(void)gotoImage
    {
         self.window =  [[UIApplication sharedApplication].delegate window];
        
        self.mianImageview = [[UIImageView alloc]init];
        _mianImageview.image = [UIImage imageNamed:@"mianimage.jpg"];
        _mianImageview.frame = _window.bounds;
        _mianImageview.tag = 100;
        _mianImageview.userInteractionEnabled = YES;
        [_window addSubview:_mianImageview];
        
        UITapGestureRecognizer *pan = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickmianimage)];
        pan.numberOfTouchesRequired = 1;
        pan.numberOfTapsRequired = 1;
        [_mianImageview addGestureRecognizer:pan];
        
        
        //创建UILabel 添加到当前view
        _labelText=[[UILabel alloc]initWithFrame:CGRectMake(40, MYScreenH-100, 80, 30)];
        _labelText.backgroundColor = [UIColor redColor];
        _labelText.textAlignment = NSTextAlignmentCenter;
        [_mianImageview addSubview:_labelText];
        
        //设置倒计时总时长
        _secondsCountDown = 2;//60秒倒计时
        //开始倒计时
        _countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod) userInfo:nil repeats:YES]; //启动倒计时后会每秒钟调用一次方法 timeFireMethod
        
        //设置倒计时显示的时间
        _labelText.text=[NSString stringWithFormat:@"%ldS",(long)_secondsCountDown];
        
        
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            
            for (UIView *subviews in [_window subviews]) {
                if (subviews.tag ==100) {
        
                        [UIView animateWithDuration:1.0 animations:^{
                            
                            CGPoint center = _mianImageview.center;
                            _mianImageview.width = 10000;
                            _mianImageview.height = 10000;
                            _mianImageview.center = center;
                            
                            subviews.alpha = 0;
                            
                        } completion:^(BOOL finished) {
                            
                            [subviews removeFromSuperview];
                            
                        }];
                    }
                
                }
            
    
        });
    }

    这个方法在viewdidload:中调用;

    倒计时的方法,每秒就调用一次:

    -(void)timeFireMethod{
        //倒计时-1
        _secondsCountDown--;
        //修改倒计时标签现实内容
        _labelText.text=[NSString stringWithFormat:@"%ldS",(long)_secondsCountDown];
        //当倒计时到0时,做需要的操作,比如验证码过期不能提交
        if(_secondsCountDown==-1){
    
            [_countDownTimer invalidate];
            [_labelText removeFromSuperview];
        }
    }

    下面的这个方法是这个广告图的点击方法,一般是跳到广告详情的,我在这里只是提前隐藏广告图

    -(void)clickmianimage
    {
            for (UIView *subviews in [_window subviews]) {
                if (subviews.tag ==100) {
                    
                    [UIView animateWithDuration:0.5 animations:^{
                        
                        CGPoint center = _mianImageview.center;
                        _mianImageview.width = 10000;
                        _mianImageview.height = 10000;
                        _mianImageview.center = center;
                        
    
                        subviews.alpha = 0;
                        
                    } completion:^(BOOL finished) {
                        
                        [subviews removeFromSuperview];
                        
                    }];
                }
                
            }
        
    
    }

    如果大神发现有什么问题,求在评论中指出:谢谢指教!

  • 相关阅读:
    python -django 之第三方支付
    python 的排名,已经python的简单介绍
    第三方登录
    linux 基础命令
    JWT 加密
    Docker 简介
    中文分词库:结巴分词
    Django websocket 长连接使用
    jQuery截取字符串的几种方式
    Python 操作redis
  • 原文地址:https://www.cnblogs.com/liuwenqiang/p/5653020.html
Copyright © 2011-2022 走看看