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通信机制

  

 

 

 

    

  

        

      

 

    

  

  

 

 

  

 

   

posted @ 2017-02-24 23:08  Wind678  阅读(377)  评论(0编辑  收藏  举报