First Chapter
1.整理基本架构
- 1.根据需求配置好app的不同版本的图标
- 2.根据app设置配置启动图片,如果不用laundStoryboard的,在程序设置Launch sceen file取消设置,自定义的就可以使用Assets.xcassets. 注意,必须设置启动图片,否则有时候屏幕顶部或者底部会出现黑条,不能适配到正确的手机尺寸
- 3.根据功能模块,可以先把app程序大概的架构基本分出,根据MVC等模式进行分类,例如,工具类tool,分类category,主要内容main,各个功能模块的mvc模式.提高阅读性
2.程序入口
- 1.如果不使用main.storyboard,同样在app设置取消,这样就在appDelegate,创建控制器.
- 2.使用main.storyboard,就直接在storyboard进行操作
- 3.根据自己需求是否使用,如果只是简单的使用,可以用storyboard,例如配置广告.一般来说,尽量少用到重量级的storyboard.
以创建广告的设置来说,使用storyboard,viewcontroller,添加广告图片,添加跳转按钮,一旦点击图片直接跳转到广告的页面,点击跳转按钮直接跳过广告,同时在设置一个定时在指定时间内跳转到UITabBarcontroller,不然一直停留在广告页面会给用户不好的使用感受.
具体代码如下
- (void)viewDidLoad{
//取出屏幕的大小
CGFloat screenH = [UIScreen mainScreen].bounds.size.height;
//根据屏幕大小进行判断用户手机的型号,配置使storyboard的背景和启动图片一直,一般来说最好不要出现数字,可以将数字抽成宏,简单的介绍就不直接抽宏了
if (screenH == 736) {
// 6 plus\6s plus
self.bgImageView.image = [UIImage imageNamed:@"LaunchImage-800-Portrait-736h@3x"];
}else if(screenH == 667){
// 6\6s
self.bgImageView.image = [UIImage imageNamed:@"LaunchImage-800-667h@2x"];
}else if (screenH == 568){
// 5\5s
self.bgImageView.image = [UIImage imageNamed:@"LaunchImage-568h@2x"];
}else if (screenH == 480){
self.bgImageView.image = [UIImage imageNamed:@"LaunchImage"];
}
//一般来说图片是不能进行点击的,要想对图片进行点击,必须为图片设置为可点击的
self.adImageView.userInteractionEnabled = YES;
//为广告图片添加手势
[self.adImageView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(adClick)]];
//显示广告图片
BOOL hadAd = NO;
if (hadAd) {
//加载沙盒图片
}else{
//从来没有加载过的服务器图片
self.adImageView.image = [UIImage imageNamed:@"图片名"];
hadAd = YES;
}
//添加计时器,之后要控制,把定时设置为属性,同时记录下剩下的时间
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
//注意必须添加runloop否则定时器是无法进行的
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
//设置广告持续的时间
self.leftTime = 3;
}
//定时器执行的方法
- (void)updateTime{
//每次时间减一
self.leftTime--;
//给用户显示
NSString *title = [NSString stringWithFormat:@"%zd",self.leftTime];
//设置跳过按钮的文字随定时器变动
[self.skipBtn setTitle:title forState:UIControlStateNormal];
//时间到跳专页面
if (self.leftTime == -1) {
//切换到app的首页
[self skip];
}
}
/** 广告点击 */
- (void)adClick{
//一旦点击了广告需移除定时器
[self.timer invalidate];
self.timer = nil;
//跳转广告页面
[UIApplication sharedApplication].keyWindow.rootViewController = 广告的页面(这在创建新viewcontroller中添加一个webview)
}
/** 点击跳过 */
- (IBAction)skip {
//一旦点击跳过或者时间到了,移除定时器
[self.timer invalidate];
//定时器移除之后,清空
self.timer = nil;
//跳转到自定义主页面
[UIApplication sharedApplication].keyWindow.rootViewController = [[CqTabBarController alloc] init];
}
网友评论