关于启动页添加广告的一些想法

闲来无事,封装了一个广告页,还算比较实用,首先我们要知道如何来添加这个广告,以及添加在哪里,启动页上都有什么,逻辑理通顺以后,在上代码就简单多了。
-(instancetype)initWithWindow:(UIWindow *)window adType:(AdType)adtype{

self = [super init];
if (self) {
    _adTimer = 6;
    [window makeKeyAndVisible];
    //获取启动图片
    CGSize viewSize = window.bounds.size;
    NSString *viewOrientation = @"Portrait";
    NSString *launchImageName = nil;
    NSArray *imagesDict = [[[NSBundle mainBundle]infoDictionary]valueForKey:@"UILaunchImages"];
    
    for (NSDictionary *dict in imagesDict) {
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]]) {
            
        }
    }
    UIImage *launchImage = [UIImage imageNamed:launchImageName];
    self.backgroundColor = [UIColor colorWithPatternImage:launchImage];
    self.frame = CGRectMake(0, 0, SWidth, SHeight);
    if (adtype == MainScreenAdType) {
        self.AdImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, SWidth, SHeight)];
    }
    else{
        self.AdImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, SWidth, SHeight - SWidth/3)];
    }
    
    self.skipButton = [UIButton buttonWithType:UIButtonTypeCustom];
    self.skipButton.frame = CGRectMake(SWidth-70, 20, 60, 30);
    self.skipButton.backgroundColor = [UIColor brownColor];
    self.skipButton.titleLabel.font = [UIFont systemFontOfSize:14];
    [self.skipButton addTarget:self action:@selector(skipClick) forControlEvents:UIControlEventTouchUpInside];
    [self.AdImageView addSubview:self.skipButton];
    
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.skipButton.bounds byRoundingCorners:UIRectCornerBottomRight | UIRectCornerTopRight cornerRadii:CGSizeMake(15, 15)];
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
    ;
    maskLayer.frame = self.skipButton.bounds;
    maskLayer.path = maskPath.CGPath;
    self.skipButton.layer.mask = maskLayer;
    self.AdImageView.tag = 1001;
    [self addSubview:self.AdImageView];
    
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(avtiveTap:)];
    self.AdImageView.userInteractionEnabled = YES;
    [self.AdImageView addGestureRecognizer:tap];
    CABasicAnimation *opactyAnimation = [CABasicAnimation animationWithKeyPath:@"opactiy"];
    opactyAnimation.duration = 0.8;
    opactyAnimation.fromValue = [NSNumber numberWithFloat:0.0];
    opactyAnimation.toValue = [NSNumber numberWithFloat:0.8];
    opactyAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
    [self.AdImageView.layer addAnimation:opactyAnimation forKey:@"animateOpacity"];
    countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
    [window addSubview:self];
    
}

return self;

}
当倒计时结束或者用户点击跳过时的动画

  • (void)startCloseAnimation{
    CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
    opacityAnimation.duration = 0.5;
    opacityAnimation.fromValue = [NSNumber numberWithFloat:1.0];
    opacityAnimation.toValue = [NSNumber numberWithFloat:0.3];
    opacityAnimation.removedOnCompletion = NO;
    opacityAnimation.fillMode = kCAFillModeForwards;
    [self.AdImageView.layer addAnimation:opacityAnimation forKey:@"animateOpacity"];
    [NSTimer scheduledTimerWithTimeInterval:opacityAnimation.duration target:self selector:@selector(closeAddImgAnmation) userInfo:nil repeats:NO];
    }
    加载需要弹出的广告的URL- (void)setImageUrl:(NSString *)imageUrl{
    _imageUrl = imageUrl;
    if (_imageUrl) {
    SDWebImageManager *manager = [SDWebImageManager sharedManager];
    [manager downloadImageWithURL:[NSURL URLWithString:_imageUrl] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {

      } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
          if (image) {
              [self.AdImageView setImage:[self imageCompressForWidth:image targetWidth:SWidth]];
          }
      }];
    

    }
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,475评论 2 4
  • 技术无极限,从菜鸟开始,从源码开始。 由于公司目前项目还是用OC写的项目,没有升级swift 所以暂时SDWebI...
    充满活力的早晨阅读 12,694评论 0 2
  • IOS 录音AVAudioRecorder 144 作者 qilinit 关注 2016.09.07 23:41 ...
    9898a阅读 1,764评论 0 0
  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 1,589评论 2 4
  • 我看到远方的光芒 在黎明前的那一道曙光 照亮我内心的恐慌 像星星在夜空中泛着光 想起我们最初的梦想 用粉笔在黑板上...
    糖点什么阅读 236评论 0 0