IOS收藏 ios零碎记录swift编程开发

App启动时广告界面的实现

2015-12-24  本文已影响1363人  尼古拉斯赵四爷

1> 添加一个控制器;让窗口刚开始展示出来的是一个控制器.

 imageV.userInteractionEnabled = YES;

[self.view insertSubview:imageV belowSubview:self.adButton];

 - 为imageview添加点按钮手势.
  ```objc
   // 添加点按手势
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(jump)];
        [_adView addGestureRecognizer:tap];

   // 一旦用户点击了广告图片我们就跳转到广告界面
- (void)jump
{
//     广告的URL
    NSURL * url = [NSURL URLWithString:self.adItem.ori_curl];
//     跳转到广告的地址
    if ([[UIApplication sharedApplication]canOpenURL:url])
    {
        [[UIApplication sharedApplication]openURL:url];
    }

2> 在控制器的ViewDidLoad方法中加载数据

  // 确定广告界面尺寸,广告界面图片,点击广告界面跳转到的界面
     CGFloat w = BSScreenW;

     CGFloat h = BSScreenH;
     if (_adItem.h) {
         h = BSScreenW / _adItem.w * _adItem.h;
         if (h > BSScreenH) {
             h = BSScreenH;
         }
     }
     self.adView.frame = CGRectMake(0, 0, w, h);
     // 加载图片
     [self.adView sd_setImageWithURL:[NSURL URLWithString:_adItem.w_picurl]];

// 添加定时器
_timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeChange) userInfo:nil repeats:YES];


- 2.3 实现定时器方法
```objc
- (void)timeChange
{
 static NSInteger time = 3;

 if (time == -1) {

     [self jumpBtn:nil];
     return;
 }
 NSString * timer = [NSString stringWithFormat:@"跳过(%ld)", time];
 [_jumpBtn setTitle:timer forState:UIControlStateNormal];

 time--;
}

3>用户点击跳过按钮的需要处理的业务逻辑

- (IBAction)jumpBtn:(UIButton *)sender {

   // 销毁定时器
   [self.timer invalidate];

   // 创建根控制器
   HYTabBarController * tabBatCon = [[HYTabBarController alloc] init];
   // 跳转到根控制器
   [UIApplication sharedApplication].keyWindow.rootViewController = tabBatCon;
}

4>严谨一点当我们的广告界面销毁时我们要取消网络请求管理者

 -(void)dealloc
{
    // 取消请求
    [self.manager.tasks makeObjectsPerformSelector:@selector(cancel)];
    // 销毁管理者
    [self.manager invalidateSessionCancelingTasks:NO];
}

最终的效果:


Snip20151224_167.png
上一篇下一篇

猜你喜欢

热点阅读