iOS 搭建框架简述

释放双眼,带上耳机,听听看~!

简述搭建一个项目框架的流程:

1. 新建工程,填写设置项目名称、组织、语音、设备等基本信息。

 

2. 删除不必要文件。

2.1 选中文件ViewController.h、ViewController.m、main.storyboard(博主习惯纯代码开发),delete。

2.2 修改Info.plist文件。

2.2.1 删除key:Main storyboard file base name对应的value:Main,告诉系统不启用故事板。

2.2.2 同时根据需求添加、删除、修改其他键值。如添加key:View controller-based status bar
appearance,对应的value:NO,使application对状态栏设置的优先级高于控制器。

 

3. 建立目录文件夹,右键Show in Finder,找到根路径后在创建文件夹,拖入项目中添加。直接New Group后Show in Finder会发现根路径找不到你创建的文件夹。这里博主建了第三方库、分类、通用工具、基类、主文件、项目模块和图片文件夹。

3.1第三方库文件夹:添加所需要的第三方库(当然也可以通过CocoaPods添加),我这里添加了一个比较好用网络请求库AFNetworking,和一个键盘滑动时输入框自动上移IQKeyboardManager。

3.2分类文件夹:分类看项目需求了,博主这里扩展了几个偶尔用的到的,如通过UIColor获取UIImage、通过16进制字符串获取UIColor。

3.3通用工具文件夹:通用工具添加了频繁使用的工具,如网络请求、消息弹窗等。

3.4 基类文件夹:创建父类,写入公共代码供子类调用。

3.5 主文件夹:这个博主习惯放启动、登录、导航、tabbar之类的。

3.6 项目模块文件夹:根据模块创建文件夹,内部根据MVC再创建文件夹

3.7 图片文件夹:当然存放图片了,内部可以根据不同模块再创建文件夹,命名如tabbar_home_nor容易查找修改。

 

4. 创建PCH全局引用文件,导入相关头文件,进行所需要的宏定义。

#ifndef HWExercises_prefix_pch
#define HWExercises_prefix_pch
#import "AFNetworking.h"
#import "HWProgressHUD.h"
#import "UIImage+HW.h"
//获取屏幕宽高
#define KMainW [UIScreen mainScreen].bounds.size.width
#define KMainH [UIScreen mainScreen].bounds.size.height
//判断机型、系统
#define IS_IPHONE_5 (KMainH == 568.0)
#define IS_IPHONE_6 (KMainH == 667.0)
#define IS_IPHONE_6P (KMainH == 736.0)
#define ISIOS8 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 ? YES : NO)
#define ISIOS10 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0 ? YES : NO)
//根据一种屏幕尺寸开发,等比缩放到其他尺寸(如:375为4.7寸屏)
#define KScreenRate (375 / KMainW)
#define KSuitFloat(float) (float / KScreenRate)
#define KSuitSize(width, height) CGSizeMake(width / KScreenRate, height / KScreenRate)
#define KSuitPoint(x, y) CGPointMake(x / KScreenRate, y / KScreenRate)
#define KSuitFrame(x, y, width, heigth) CGRectMake(x / KScreenRate, y / KScreenRate, width / KScreenRate, heigth / KScreenRate)
//block修饰
#define weakify(var) __weak typeof(var) weakSelf = var
#define strongify(var) __strong typeof(var) strongSelf = var
//Debug下输出打印信息,Release下不输出打印信息
#ifdef DEBUG
#define HWLog(...) NSLog(__VA_ARGS__)
#else
#define HWLog(...)
#endif
#endif /* HWExercises_prefix_pch */

 

5. 在AppDelegate.m中初始化窗口,设置根控制器。接下来就可以在控制器书写相关代码了。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[[HWLuanchVC alloc] init]];
[self.window makeKeyAndVisible];
return YES;
}

 

以上,一个简单的框架就搭建好了,当然,这只是一个简单的骨架,还需要很多填充。

Demo下载链接:http://code.cocoachina.com/view/135115

写博客的初心是希望大家共同交流成长,博主水平有限难免有偏颇之处,欢迎批评指正。

 

人已赞赏
iOS文章

iOS 绘图机制简介,Quartz 2D绘图用CGContextRef绘制音频波形图

2020-2-23 10:18:12

iOS文章

iOS Xcode编程常用快捷键

2020-2-23 11:52:08

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索