杂⑦碎八之--百思Demo Z1

独立开发对于一个技术员的成长是非常有好处的,一个人对一个项目的把控,更容易更深刻的养成一种程序思想,当你独自开发完一个项目之后,以后的开发之路会越来越顺!

学习目的:

MVC  MVVM  MVCS思想

项目开发流程  GIT代码管理  屏幕适配  版本适配 

开发前准备:

             1.需求文档:描述界面需要实现的功能

             2.原型图:描述App界面如何去搭建  ,注意里面关于位置的一般是像素尺寸,我们用的时候,乘以0.5

             3.接口文档:网络请求的数据库之类的接口

以上为了解内容,公司会提供这个资料.知道这个东西的作用就行


进入正题:

首先要做的是,创建一个源代码管理库,OSChina上免费提供隐私库,先在上面注册账号,创建一个库,其余不多赘述

1.环境部署 (基本信息设置)

Xcode工程选项中需要提到的注意点:

Bundle ID :唯一标示符 

作用1,上传到AppStory  

作用2,苹果后台帮忙推送通知

Deployment target  :选择支持的系统

Status  Bar  style  : 状态栏的设置  只有在启动界面发挥效果,其他的时候无任何效果.

界面启动图片以及应用程序图标在此不一一赘述.

2.基本结构搭建

选择方式:当界面少于5个的时候,选择storyboard来搭建项目,其余选择代码创建.

代码创建工程:在info.plist或者工程选项中,删掉main  并删除工程中的viewcontroller 以及storyboard  文件

补充:在GIT管理中,删除不为空的或者创建自带的文件,需要在工程中进行,不能在Finder中删除,因为GIT进行管理.在工程中删除会有标记,而Finder中不会进行标记.数据库中还是存在此文件.在GIT管理中更需要注意的,初始化项目,进行过功能模块划分,如果工程中的某些文件是要放入到某文件夹时,最好在本地进行操作,然后将工程中源文件删除,把本地文件拖入.别问为什么,好难回答~~


最直观的做法,在AppDelegate中做3步操作:

创建窗口  设置根控制器  显示窗口

①设置窗口的根控制器TabBarController

原则:界面一开始是谁,就设置谁为根控制器

②添加其子控制器(导航控制器)

给每一个子控制器包装上一个导航控制器,某界面不需要导航控制器时可以不必要添加.这时候添加的控制器为导航控制器.


补充知识:


关于颜色常识:

#ffffff 是美工16进制的表示    每两位数代表一个颜色通道  这个是24位  32位多一个alpha值;

Xcode 6 之后,苹果推出了一项Launch Screen功能用来设置启动界面, 那么与之前的Launch Image有哪些区别?

1.Launch Image 屏幕可视范围由启动图片决定,美工需要制作多种尺寸的图片用于适配

2.Launch Screen 自动适配当前模拟器尺寸  缺陷:图片拉伸效果不好.

所以大多情况下,依然使用Launch Image

应用程序名称的修改位置:info.plist  Bundle name


TabBarController 默认做法是:把它第一个子控制器的view添加到存放子控制器的view中,如果UITabBarController中有N个子控制器,那么UITabBar就有N个按钮

跳转原理:点击每一个按钮,它会把当前的view从存放子控件view的view中移除,只是移除,子控制器还在view中,没有被移除,再把当前选中的控制器的view添加到UITabBarController存放view的view当中,显示出来.

UINavigationController关于导航控制器:

初始化UINavigationController时,可以通过initWithRootViewController:方法传入一个控制器作为根控制器,这个根控制器永远处于栈底(如果栈中只有一个对象,那么根控制器也处于栈顶)

这两个UINavigationController UITabBarController控制器内部默认有两个view,一个顶端或者底端,控制器自身view

UITabBarController中,底部的Button由对应子控制器的Item决定,所以设置相对应的UINavigationController的属性.

UITabBarController 中遇见的bug:设置底部按钮文字,当未设置图片时,文字未显示.

解决方法:查看对底部button的设置,是否是在其对应的子控制器的Item进行的设置.

简化代码原则:各类管各类自己的事情.

写分类技巧:声明后,不要急于实现,先在外界进行调用.

推荐阅读更多精彩内容