栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > iOS

iOS实现动态的开屏广告示例代码

iOS 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

iOS实现动态的开屏广告示例代码

一、实现效果图

二、实现思路:

用一个固定的png图片左启动图,应该和广告视图需要进行动画的期初的位置一致,当启动图消失的时候,呈现出图片,实际遇到的困难是,因为广告图片是从网络请求加载的,当时把广告视图放在了请求数据的块里面,广告出现的时候会闪一下,放在外面就没事了。

三、实现示例

1.广告的头文件

// XBAdvertView.h 
// scoreCount 
// 
// Created by 王国栋 on 15/12/22. 
// Copyright © 2015年 xiaobai. All rights reserved. 
// 
 
#import  
@protocol XBAdvertViewDelegate  
 
-(void)adViewClick; 
@end 
@interface XBAdvertView : UIView 
 
 
@property (nonatomic,weak) id delegate; 
 
@property (nonatomic,strong) UIImage* adimage; 
 
@end 

2.广告的m文件

// 
// XBAdvertView.m 
// scoreCount 
// 
// Created by 王国栋 on 15/12/22. 
// Copyright © 2015年 xiaobai. All rights reserved. 
// 
 
#import "XBAdvertView.h" 
#import "MacroDefinition.h" 
#import "UIDeviceHardware.h" 
 
 
#define kScreenW [UIScreen mainScreen].bounds.size.width 
#define kScreenH [UIScreen mainScreen].bounds.size.height 
 
#define AppViewOriginCenterY kScreenH*0.335 
#define AdvertViewRatio 0.75 
 
#define AppViewObjCenterY (kScreenH*AdvertViewRatio+35) 
 
#define AppNameObjCenterY AppViewObjCenterY+30 
#define AppNameOriginCenterY kScreenH+20 
 
#define AppImageViewW 60/0.6 
#define AppImageViewH AppImageViewW 
 
@interface XBAdvertView() 
 
// 
//@property (nonatomic,strong) UIImage * advertImage; 
// 
//@property (nonatomic,strong) UIImage* appImage; 
// 
//@property (nonatomic,strong)UILabel * appName; 
// 
// 
//@property (nonatomic,strong) NSString* picURL; 
// 
// 
 
@property (nonatomic,strong) UIImageView * advertImv; 
@property (nonatomic,strong) UIImageView * appImv; 
@property (nonatomic,strong) UILabel * appName; 
@property (nonatomic,strong) UILabel * appPinyin; 
@property (nonatomic,strong) UIImage *image; 
@end 
@implementation XBAdvertView 
 
- (void)setAdimage:(UIImage *)adimage 
{ 
 self.advertImv.image = adimage; 
  
 [UIView animateWithDuration:1.0 delay:0.5 options:UIViewAnimationOptionCurveEaseIn animations:^{ 
  UIDeviceResolution ios_Model = [UIDeviceHardware currentResolution]; //获取设备尺寸 
  if (ios_Model==UIDevice_iPhoneHiRes||ios_Model==UIDevice_iPhoneStandardRes||ios_Model==UIDevice_iPhoneTallerHiRes){ 
   self.appImv.center = CGPointMake(self.appImv.center.x, SCREEN_HEIGHT-108+20); 
    
  }else{ 
   self.appImv.center = CGPointMake(self.appImv.center.x, SCREEN_HEIGHT-108+25); 
    
  } 
  self.appName.center= CGPointMake(self.appName.center.x, SCREEN_HEIGHT-108+self.image.size.height/2+5+15); 
  self.appImv.transform = CGAffineTransformMakeScale(0.6, 0.6); 
  self.appPinyin.center = CGPointMake(self.appPinyin.center.x,SCREEN_HEIGHT-15-10); 
  //self.appPinyin.frame = CGRectMake(0, CGRectGetMaxY(self.appName.frame)+5, SCREEN_WIDTH, 20); 
 } completion:^(BOOL finished) { 
   
  //  [UIView animateWithDuration:1.0 animations:^{ 
  // 
  //   self.advertImv.alpha=1.0f; 
  //  }]; 
  self.advertImv.alpha=1.0f; 
  [UIView animateWithDuration:3.0 animations:^{ 
    
   self.advertImv.alpha=1.0f; 
    
  } completion:^(BOOL finished) { 
    
   [NSThread sleepForTimeInterval:2.0]; 
    
   [self removeFromSuperview]; 
    
    
  }]; 
 }]; 
 
} 
- (instancetype)initWithframe:(CGRect)frame 
{ 
  
 NSLog(@"initWithframe"); 
 if (self = [super initWithframe:frame]) { 
   
  //设置广告 
  self.backgroundColor = [UIColor whiteColor]; 
  self.advertImv = [[UIImageView alloc]init]; 
  self.advertImv.backgroundColor = [UIColor grayColor]; 
  self.advertImv.contentMode=UIViewContentModeScaleToFill; 
  self.advertImv.alpha = 0;//设置为透明 
  [self addSubview:self.advertImv]; 
  //添加手势 
  UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(click)]; 
  tap.numberOfTapsRequired=1; 
  [self.advertImv addGestureRecognizer:tap]; 
   
  //设置app图标 
  self.appImv =[[ UIImageView alloc]init]; 
  self.appImv.image = [UIImage imageNamed:@"iphone6p"]; 
  [self addSubview:self.appImv]; 
  //设置app 的名字 
  self.appName = [[UILabel alloc]init]; 
  self.appName.text = @"乐校"; 
  self.appName.font = UIFont(18); 
  self.appName.textColor = BLUE_22C4FF; 
  self.appName.textAlignment=NSTextAlignmentCenter; 
  [self addSubview:self.appName]; 
  self.appPinyin =[[UILabel alloc]init]; 
  self.appPinyin.textAlignment = NSTextAlignmentCenter; 
  self.appPinyin.font = UIFont(13); 
  self.appPinyin.textColor = BLUE_22C4FF; 
  self.appPinyin.text =@"使大学生活更精彩"; 
  [self addSubview:self.appPinyin]; 
   
  //设置广告尺寸 
   
  UIDeviceResolution ios_Model = [UIDeviceHardware currentResolution]; //获取设备尺寸 
  if (ios_Model==UIDevice_iPhoneHiRes||ios_Model==UIDevice_iPhoneStandardRes||ios_Model==UIDevice_iPhoneTallerHiRes){ 
   self.image = [UIImage imageNamed:@"iphone5"]; 
   self.appImv.frame = CGRectMake(0, 0, self.image.size.width, self.image.size.height); 
  }else if (ios_Model==UIDevice_iPhone6HiRes){ 
   self.image = [UIImage imageNamed:@"iphone6"]; 
   self.appImv.frame = CGRectMake(0, 0, self.image.size.width, self.image.size.height); 
  }else if (ios_Model==UIDevice_iPhone6pHiRes){ 
   self.image = [UIImage imageNamed:@"iphone6p"]; 
   self.appImv.frame = CGRectMake(0, 0, self.image.size.width, self.image.size.height); 
  } 
  //  self.appImv.frame = CGRectMake(0, 0, AppImageViewW, AppImageViewH); 
  if (ios_Model==UIDevice_iPhoneHiRes||ios_Model==UIDevice_iPhoneStandardRes){ 
   self.appImv.center = CGPointMake(kScreenW/2, AppViewOriginCenterY+5); 
  }else if (ios_Model==UIDevice_iPhone6HiRes){ 
   self.appImv.center = CGPointMake(kScreenW/2, AppViewOriginCenterY); 
  }else if (ios_Model==UIDevice_iPhoneTallerHiRes||ios_Model==UIDevice_iPhone6pHiRes){ 
   self.appImv.center = CGPointMake(kScreenW/2, AppViewOriginCenterY); 
  } 
  //设置app名字的尺寸 
  self.appName.frame =CGRectMake(0, 0, AppImageViewW, 30); 
  self.appName.center=CGPointMake(kScreenW/2, AppNameOriginCenterY); 
  //设置app拼音的尺寸 
  self.appPinyin.frame =CGRectMake(0, 0, SCREEN_WIDTH, 20); 
  self.appPinyin.center=CGPointMake(kScreenW/2, AppNameOriginCenterY+AppImageViewH/2); 
  //设置广告尺寸 
  //self.advertImv.image = adimg; 
  self.advertImv.frame= CGRectMake(0, 0, kScreenW,kScreenH); 
   
 
 } 
 return self; 
} 
 
 
-(void)click 
{ 
 if ([self.delegate respondsToSelector:@selector(adViewClick)]) { 
   
  [self.delegate adViewClick]; 
 } 
} 
 
 
@end 
[self.view setBackgroundColor:[UIColor greenColor]]; 
 
 XBAdvertView * ad = [[XBAdvertView alloc]initWithframe:[UIScreen mainScreen].bounds]; 
 UIImage * image = [UIImage imageNamed:@"ad.jpg"]; 
 ad.adimage = image; 
 [self.view addSubview:ad]; 

四、总结

以上就是iOS实现动态开屏广告的全部内容了,希望对大家学习或开发iOS能有所帮助,如果有疑问大家可以留言交流。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/167162.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号