iOS开发 - UI
目标:系统性Review;查漏补缺;
--- 2017-02-25 00:38
Update Chapter3
--- 2017-02-28
Chapter1: 初识iOS
1.1 UI
User Interface; UI处于iOS四层结构的最上层(Cocoa Touch); 置于UIKit;
(1) 大致分类:显示类控件、输入类控件、提示类控件、滑动类控件、点击类控件、选择类控件、表格类控件、搜索类控件、视图控制器类等。
(2) 开发角度分类:系统控件、自定义效果控件
1.2 iOS系统架构
参考:http://www.cnblogs.com/byqh/p/5595404.html
1.3 应用程序包
编译App时,Xcode将它整理成一个包,文件系统中的一个目录,将相关的文锦都集中放到一个地方,App包包括App的可执行文件和App所需要的资源文件。
1.4 StoryBoard
Chapter2 UI基础控件
storyboard通常demo之用,项目开发多纯代码。
2.1 UILabel
2.2.1 属性
lineBreakMode:当文字超出label显示区域时的街区方式
2.2.2 文本区域
(1) adjustFontSizeToFitWidth
(2) baselineAdjustment
(3) 高亮设置
(4) 绘制阴影
(5) 重载绘画
(6) 用户交互
2.2 UITextField
2.3 UIButton
2.4 UIAlertView、UIActionSheet
Chaper3 应用程序
3.1 工程结构
main.m程序的入口
xxx-Prefix.pch预编译头文件
xxx-Info.plist程序配置文件
InfoPlist.string国际化文件
MyProject.app最终程序
framework是程序用到的框架
3.2 程序执行顺序
1. main.m是程序的入口
2. UIApplicationMain()创建应用程序对象,并且为此对象指定委托,监测程序的执行,同时开启事件循环,处理程序接收到的时间;
3. UIApplicationDelegate方法的执行;
4. 加载window;
5. 制定跟试图控制器.
3.3 UIApplication
应用程序在iPhone中用UIApplication表示,系统将其做成了单例方便实用。每个程序都是:UIApplication的或子类型的实例,主要用于处理用户事件,负责window的显示。通常会给应用程序制定一个委托,来监听程序的运行。
3.4 主函数
在iPhone应用程序中,main函数仅在最小程度上被使用,应用程序运行所需要的大多数实际工作由UIApplicationMain函数来处理。因此,当您在Xcode中开始一个新的应用程序工程时,每个工程模版都会提供一个man函数的标准实现,该实现和"处理关键的应用程序任务"部分提供的实现是一样的。main函数只做三件事:创建一个自动释放,调用UIApplicationDelegate函数,以及使用自动释放池。iPhone应用程序的main函数如下:
int main(int argc,char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc,argv,nil,nil);
[pool release];
return retVal;
}
3.5 UIApplicationDelegate
监控应用程序的告急行为是应用程序委托对象的责任,而应用程序委托对象是您提供的定义类实例。委托是一种避免对复杂对象的UIKit对象(比如缺省的UIApplication对象)进行子类化的机制。
UIApplicationDelegate是个协议,定义了系列监测程序执行的方法。大致分为:程序启动、活跃/非活跃状态、前/后台状态、推送通知、内存警告等。
3.6 窗口UIWindow
(1) UIWindow的作用
应用程序启动时,会创建一个窗口,并往窗口中加入一个或多个视图,然后将它显示出来。窗口显示出来后,很少再次引用它。
(2) UIWindow的使用
UIWindow一重要属性rootViewController,用于加载窗口里面第一个视图。这个属性是UIViewController类型的。
UIWindow有一个比较重要的方法makeKeyAndVisible。这个方法的作用是设置当前window为主window,并且将其内容 显示出来。
Window如同一电视,里面有各个节目(view),每个节目里面又有很多元素,这些元素也都是更小的view。作为Window通常只负责显示,所以我们只需要一个。并且不会对其进行过多操作。
Chapter4 类的扩展
4.1 类目
1.> 类目作用
a. 通过类目的作用,可以将类的实现分散到不同的文件里
b. 创建对私有方法的前向饮用
c. 向对象添加非正式协议
4.2 延展
1.> 作用
主要为了定义自己的私有方法。
4.3 协议
1.> 作用
正式协议可以将业务中的方法定义剥离出来,形成一个单独的文件。
Chapter5 视图控制器
5.1 UIViewController
5.1.1 概述
UIViewController,视图控制器在MVC设计模式中扮演控制层的角色.
UINavigationController 导航栏控制器.
UITabBarController选项卡控制器.
UITableViewController 表视图控制器.
5.1.2 常用方法
1.> view
2.> -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
3.> -(id)didReceiveMemoryWarning;
4.> -(void)loadView;
5.> -(void)viewDidLoad;
6.> -(void)viewDidUnload;
7.> -(BOOL)shouldAutorateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
5.1.3 自定义UIViewController
5.1.4 横竖屏切换
5.2 视图
应用程序中几乎全部可是控件都是UIView以及UIView子类的实例。
UIKit视图类的层次框架图:
此视图层次可以分为几类:
(1) 容器
(2) 控件
(3) 显示视图
(4) 文本和web视图
(5) 警告视图和动作表单
(6) 导航视图
(7) 窗口
.............
5.3 多态
5.4 id数据类型
Chapter6 绘图
6.1 绘图的方法
6.1.1 Quartz 2D的图形上下文
6.1.2 坐标系
6.1.3 指定颜色
6.1.4 在上下文中绘制图像
6.1.5 绘制形状: 多边形、直线和曲线
6.2 构建Quartz Project程序
6.3 优化QuartzProject程序
Chapter7 触摸和手势
7.1 概述
7.1.1 事件
7.1.2 事件的传递
7.1.3 响应对象和响应者链
7.1.4 多点触摸事件
7.2 触摸和手势
7.2.1 事件处理方法
7.2.1.1 控制触摸事件传递
7.2.1.2 处理多触摸事件
7.2.1.3 事件处理方法
Chapter8 常用UI控件
8.1 UIImageView图片视图
8.2 UISlider滑块控件
8.3 UISegmentControl分段控件
8.4 UIScrollView滚动视图
8.5 UIPageControl分页空间
Chapter9 UIView动画
9.1 简述
9.2 建立UIView动画块
9.3 动画的回调方法(代理Method)
9.4 视图过度
9.5 使用Core Animation Transitions
9.6 一般的Core Animatin调用
9.7 翻页过渡效果
9.8 反弹效果
9.9 图像视图效果
9.10 视图的映射
9.11 CALayer层简述
9.12 Summary
Chapter10 时间操作
10.1 UIPickerView、UIDatePickerView选择控件、日期选择控件
10.1.1 UIPickerView的常用处理方法
10.1.2 UIDatePicker的使用方法
10.2 NSDate(选看)
10.2.1 创建或初始化时间对象可用以下方法
10.2.2 获取时空界限
10.2.3 日期之间比较可用以下方法
10.2.4 取回时间间隔可用以下方法
10.2.5 利用时间参数来创建NSDate实例的实例方法
10.2.6 将时间表示成字符串
10.3 NSDateFormatter
10.4 NSCalendar(选看)
10.5 NSTimer
10.5.1 创建一个定时器方法
10.5.2 定时器开始方法
10.5.3 定时器停止方法
10.5.4 关于NSTimer实例的其它方法
10.6 本地通知
*****************************************************
Part2 多视图控制器
Chapter11 导航栏控制器
11.1 概述
11.2 层级关系
11.3 工作原理
11.4 创建
11.5 使用
11.6 自定义UINavigationBar
11.7 navigationItem的使用
11.8 UIVavigationController的常用方法
11.8.1 修改导航栏上的文字颜色
11.8.2 修改导航栏背景颜色
11.8.3 代理方法
Chapter12 表视图
12.1 UITableView概述
12.2 工作原理
12.3 创建
12.4 重要属性
12.5 NSIndexPath和UITableViewCell
12.6 UITableViewDelegate、UITableViewDataSource
12.7 自定义UITableViewCell
12.8 刷新UITableView
12.9 UITableViewController概述
Chapter13 数据持久化
13.1 文件读写
13.1.1 文件路径结构
13.1.2 获取文件路径
13.1.3 NSFileManager进行文件操作
13.2 属性列表(plist)
13.3 使用Archiver归档数据
13.4 内嵌数据库SQLite
13.4.1 SQLite基础知识
13.4.2 项目中使用SQLite
13.5 Core Data
13.5.1 实体与托管对象
13.5.2 键/值编码
13.5.3 在上下文中结合它们
13.5.4 创建新托管对象
13.5.5 检索托管对象
13.5.6 设计数据模型
13.6 iCloud
Chapter14 标签控制器
14.1 概述
14.2 tabBarController的创建
14.3 更多Tab Bar Item
14.4 TabBarController的常用方法
14.1 修改背景不骗
14.2 常用委托方法
14.3
Chapter15 网络连接
15.1 网络开发概述
15.2 网络状态检查,网络连接中所用到的类
15.2.1 Reachability
15.2.2 网络连接中所用到的类
15.3 同步下载
15.4 异步下载
15.5 GET请求和POST请求
15.5.1 网络请求分GET和POST两种形式
15.5.2 GET请求和POST请求的区别
15.5.3 GET和POST应用
15.6 XML和JSON解析
15.6.1 XML介绍
15.6.2 XML解析
15.6.3 JSON介绍
15.6.4 JSON解析
15.7 天气预报示例
15.8 UITextView、UIWebView文本控件、网页显示控件
15.8.1 UITextView的使用
15.8.2 UIWebView的使用
15.9 ASIHTTPRequest类库简介
15.10 安装说明
如果欲在iOS项目中使用ASIHTTPRequest,需要在项目中进行简单的配置...
15.11 使用说明
15.11.1 发起一个同步请求
15.11.2 创建一个异步请求
15.11.3 队列请求
15.11.4 取消异步请求
15.11.5 安全的内存回收建议
15.11.6 向服务器上传数据
15.11.7 下载文件
15.11.8 获取响应消息
15.11.9 获取请求进度
*******************************Part 3 硬件特性和设计模式*******************************
Chapter16 音频、视频播放
16.1 AVAudioPlayer
16.1.1 初始化音频播放器
16.1.2 设置AVAudioPlayer属性
16.1.3 AVAudioPlayer常用方法
16.1.4 简单应用
16.2 视频
16.2.1 简介
16.2.2 常用方法
16.2.3 简单示例
16.3 MPMediaPickerController
16.3.1 MPMediaPickerController简介
16.3.2 选取、播放多媒体和监控事件
16.3.3 播放选取的音乐MPMusicPlayerControler
Chapter17 iPhone照相机和相册的使用
17.1 使用图像选区器和UIImagePickerController
17.2 实现图像选取器控制器委托
17.3 测试照相机和相册
Chapter18 短息、邮件
18.1 用途
18.2 短信
18.2.1 程序外调用短信功能
18.2.2 程序内调用短息功能
18.3 邮件
18.3.1 程序外调用邮件功能
18.3.2 程序内调用邮件功能
Chapter19 地图和定位
19.1 定位
19.1.1 位置管理器
19.1.1.1 设置所需的精度
19.1.1.2 设置距离筛选器
19.1.1.3 启动并停止位置管理器方法
19.1.2 位置管理器的委托
19.1.3 定位当前位置示例
19.2 地图
19.2.1 地图注释
19.2.1.1 创建、添加和删除注释
19.2.1.2 注释视图
19.2.1.3 自定义注释视图
19.2.1.4 响应注解按钮单机事件
Chapter20 加速计、陀螺仪
20.1 加速计的使用
20.1.1 概述
20.1.2 获取UIAccelerometer的实例,并进行相应的蛇者
20.1.3 设置玩代理,实现代理方法,获取数据
20.1.4 侦测晃动事件
20.2 陀螺仪的使用
20.2.1 概述
20.2.2 陀螺仪数据类CMGyroData获得陀螺仪返回数据的属性方法
20.2.3 陀螺仪的使用
Chapter21 iPhone多线程
21.1 线程简介
21.1.1 含义
21.1.2 Why do you use it?
21.1.3 多线程基本知识
21.2 iPhone创建和管理线程
21.2.1 cocoa中的线程相关类
21.2.2 线程的实现方式
21.3 iPhone线程安全性
21.3.1 “锁”住线程
21.3.2 关于NSCondition
Chapter22 KVC、KVO
22.1 KVC、KVO概述
22.2 KVC、KVO的作用
22.3 如何使用KVC、KVO
Chapter23 通知
23.1 通知概述
23.1.1 原理
23.1.2 通知中心
23.2 通知作用
23.3 如何使用通知
Chapter24 MVC
24.1 概述
24.2 MVC模型
24.3 MVC通信机制
微信赞赏
支付宝赞赏