iOS 启动页加入动态的广告实现
来源:互联网 发布:淘宝收到空包裹怎么办 编辑:程序博客网 时间:2024/04/29 20:36
做产品的时候有的时候需要在程序启动的时候加入广告,不难。只要在appdelegate.m 的启动加载完成方法加入需要的广告视图就可以了,但是有的时候需要让启动图看起来就是一个广告,只有一个界面。而且还要这个广告里面会动,iOS的启动图只能是静态的,而且固定,为了实现看起来的动画效果,只能进行伪造了。
实现思路:
用一个固定的png图片左启动图,应该和广告视图需要进行动画的期初的位置一致,当启动图消失的时候,呈现出图片,实际遇到的困难是,因为广告图片是从网络请求加载的,当时把广告视图放在了请求数据的块里面,广告出现的时候会闪一下,放在外面就没事了。
广告的头文件
// XBAdvertView.h// scoreCount//// Created by 王国栋 on 15/12/22.// Copyright © 2015年 xiaobai. All rights reserved.//#import <UIKit/UIKit.h>@protocol XBAdvertViewDelegate <NSObject>/** * 图片被点击的代理 */-(void)adViewClick;@end@interface XBAdvertView : UIView@property (nonatomic,weak) id<XBAdvertViewDelegate> delegate;@property (nonatomic,strong) UIImage* adimage;@end广告的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;///**// * app图标// *///@property (nonatomic,strong) UIImage* appImage;////@property (nonatomic,strong)UILabel * appName;/////**// * 图片的URL// *///@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]; }}/*// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect { // Drawing code}*/@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];
0 0
- iOS 启动页加入动态的广告实现
- 【iOS开发系列】启动页面广告(可实现动态加载)
- iOS 启动页广告
- iOS广告启动页
- ios 类似于网易的启动页广告
- android 加入广告页的思路以及实现。
- IOS 在启动图之后加入广告或加入伪启动动画
- IOS实现开机启动欢迎页广告倒计时源代码
- iOS启动页广告JYJAdViewController
- 启动页上点击广告跳转,退出广告页后返回继续启动的实现方法
- 启动页上点击广告跳转,退出广告页后返回继续启动的实现方法
- IOS 加入 GOOGLE 广告 2分钟 加入
- iOS 广告轮播图的实现
- 仿网易新闻广告启动页的实现
- 启动页加载远程广告的简单实现
- 通过设置图片实现app启动广告页的效果
- iOS 录屏大师启动页广告
- ios App启动加载广告页
- Spring声明式事务管理与配置介绍
- 何时用Delegate和何时用Block?
- css菜单样式反转
- Hadoop经典案例Spark实现(三)——数据排序
- 4.动画
- iOS 启动页加入动态的广告实现
- ios开发--UIImage转化成NSData
- B/S后台生成验证码登陆
- Android home键和back键区别
- COMODO杀毒软件Mac版下载
- getType() 和Typeof()
- EF 跨库查询
- linux sort用法介绍
- 设置tabBarItem图片渲染