主流架构搭建

1. 前置

iOS 整体了解
阅读 产品需求文档,原型图,接口文档.

适配了解

转: iOS适配
转: iOS图片适配
转: iOS网络IPV6适配
不同机型适配可看成两部分,一是屏幕大小适配(坐标),一是像素适配;前者根据不同的机型大小,视图大小自动适应(AutoLayout);后者根据机型的分辨率和坐标比率.提供合适图片.
iPhone 现在采用Retina屏, 它的 1point = px*ppi. 设置图片素材时根据图片分辨率在UI中的尺寸要乘以对应ppi.

例如. 在iPhone6中ppi为1:2,所以如图片px为168×192,那么在程序中size设置为84×96.(ppi:代表屏幕物理大小到图片大小的比例值).
当然,现在UI会给你.png和@2x.png,[email protected]样式的图片,系统根据机器的分辨率自动决定使用哪张图片.

字体和RGB颜色选择

转: iOS 字体适配
转: IOS 常用颜色

2. 项目部署.

转 : iOS Bundle identifier介绍
转 : 启动图片设置

Xcode6 新增 Lanchscreen 使用可拉伸图片自动适配不同尺寸设备,但是平时开发中,UI还是会根据不同设备提供多个启动图,所以我们还是使用LanchImage方式设置启动图片.

3. 项目架构

主要介绍项目分组,分工方式.
一般,项目按分为三层, 最上层的UI层(业务层),中间数据层,底层网络请求层.
现在比较流行的MVC与MVVM结构.

一般APP.如微博,今日头条等的架构:
项目架构搭建: 主流结构 (UITabBarController + 导航控制器)
项目开发方式: 1.storyboard 2.纯代码.
根据项目架构,进行文件夹划分

4. 主流框架样式

主流架构搭建_第1张图片
WechatIMG2.jpeg
主流架构搭建_第2张图片
主流框架

可以看出最上方导航条和最下方的标签栏,得知此界面由UITaBarController和UINavgationController组成.下面贴出简单的代码演示.

主界面开始:

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 1.创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

    // 2.设置窗口的根控制器
    BSTabBarController *tabBarVc = [[BSTabBarController alloc] init];
    self.window.rootViewController = tabBarVc;

    // 3.显示窗口
    [self.window makeKeyAndVisible];
    return YES;
}

UITaBarController中我们来添加UINavgationController子控制器.

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    // 2.2 添加子控制器
    [self setUpAllChildViewController];
    
    // 2.3 设置tabButton内容
    [self setUpAllTabBarButton];
    
}

// 设置所有tabButton内容
- (void)setUpAllTabBarButton
{
    // 微信
    UINavigationController *nav = self.childViewControllers[0];
    nav.tabBarItem.title = @"微信";
    nav.tabBarItem.image = [UIImage imageNamed:@"tabBar_essence_icon"];
    nav.tabBarItem.selectedImage = [UIImage imageWithOriginalName:@"tabBar_essence_click_icon"];
        
    // 通讯录
    UINavigationController *nav1 = self.childViewControllers[1];
    nav1.tabBarItem.title = @"通讯录";
    nav1.tabBarItem.image = [UIImage imageNamed:@"tabBar_new_icon"];
    nav1.tabBarItem.selectedImage = [UIImage imageWithOriginalName:@"tabBar_new_click_icon"];
  
    
    // 发现
    UINavigationController *nav2 = self.childViewControllers[2];
    nav2.tabBarItem.title = @"发现";
    nav2.tabBarItem.image = [UIImage imageNamed:@"tabBar_friendTrends_icon"];
    nav2.tabBarItem.selectedImage = [UIImage imageWithOriginalName:@"tabBar_friendTrends_click_icon"];
    
    // 我
    UINavigationController *nav3 = self.childViewControllers[3];
    nav3.tabBarItem.title = @"我";
    nav3.tabBarItem.image = [UIImage imageNamed:@"tabBar_me_icon"];
    nav3.tabBarItem.selectedImage = [UIImage imageWithOriginalName:@"tabBar_new_click_icon"];

}

// 添加所有子控制器
- (void)setUpAllChildViewController
{
    // 微信
    BSEssenceViewController *essenceVc = [[BSEssenceViewController alloc] init];

    [self addChildViewController:essenceVc];
    
    // 通讯录
    BSNewViewController *newVc = [[BSNewViewController alloc] init];
    [self addChildViewController:newVc];
    
    // 发现
    BSFriendTrendsViewController *friendVc = [[BSFriendTrendsViewController alloc] init];
    [self addChildViewController:friendVc];
    
    // 我
    BSMineViewController *meVc = [[BSMineViewController alloc] init];
    [self addChildViewController:meVc];
}

- (void)addChildViewController:(UIViewController *)childController
{
    BSNavigationController *nav = [[BSNavigationController alloc] initWithRootViewController:childController];
    [super addChildViewController:nav];
    
}

之后,每个页面具体的内容由你自己自定义控制器来设置. 由此,一款APP 的主要架构就搭建起来了. 下一章介绍界面具体内容的设置.

你可能感兴趣的:(主流架构搭建)