1. UI编程概述
UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。
好的UI设计不仅是让软件变得有个性有品位,还要让软件的操作变得舒适简单、自由,充分体现软件的定位和特点。
软件设计可分为两个部分:编码设计与UI设计。
从字面上看是用户与界面两个部分组成,但实际上还包括用户与界面之间的交互关系。
2. UIWindow
1> 概述
管理和协调应用程序的显示。
UIWindow 类是 UIView 的子类,可以看作是特殊的 UIView 。
一般应用程序只有一个 UIWindow 对象。
2> 自动创建流程
程序运行从 main() 函数开始执行 UIApplicationMain() 创建代理
加载配置文件 info.plist (Main Interface设置了程序的主入口)
根据 name 找到对应的 storyboard , 加载 storyboard
storyboard 会自动创建一个 UIWindow 对象
3> 手动创建流程
② 在 AppDeletegate.m 的 application 方法中创建,创建代码如下:
4> 屏幕大小
iPhone4(s) : 320 * 480
iPhone5(s) : 320 * 568
iPhone6(s) : 375 * 667
iPhone6(s) Plus : 414 * 736
3. UIView
1> 概述
UIView 表示屏幕上的一块矩形区域。
它在App中占有绝对重要的地位。
因为iOS中几乎所有可视化控件都是 UIView 的子类。
负责渲染区域的内容,并且响应该区域内发生的触摸事件。
2> 功能
- 管理矩形区域里的内容
- 处理矩形区域中的事件
- 子视图的管理
- 实现UIView动画
UIView作为父类,子类也具有这些功能
3> 坐标系相关数据的类型
坐标:
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
大小:
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
矩形:
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
iOS 中使用 CGRect 类型确定矩形位置以及大小
CGRectMake() 函数可以帮我们快速构造一个 CGRect 变量。
4> UIView常用属性
5> 父视图 和 子视图
使用 addSubview: 添加视图,要确定添加到谁上面。
被添加的视图称为子视图 , 添加到的视图称为父视图。
6> 添加视图
7> 修改视图的层次关系
8> frame和bounds的区别
frame : 根据父视图坐标系来确定自己的位置
bounds : 该视图在自己坐标系的位置和大小
修改bounds并不会引起视图位置的变化 ,会影响自身子视图的位置
修改frame会引起视图位置的变化
3. 应用程序启动流程
1>main函数
任何一个程序,无论是基于Mac OS还是iOS,程序都是从main.m 文件的main函数开始执行的。
2> UIApplicationMain
UIApplicationMain在程序入口函数main函数中调用,主要实现了3个功能:
① 创建应用程序(UIApplication)实例
② 创建应用程序代理(AppDelegate)实例
③ 建立事件循环(runloop:死循环,不断检测程序运行状态,是否被触摸、晃动等)
3> UIApplicationMain参数
principalClassName:应用程序对象的类名(UIApplication或其子类)
delegateClassName:应用程序delegate的类名(任何接受了UIApplicationDelegate的类)
UIApplicationMain根据上述两个类名创建应用程序实例、应用程序代理实例。然后建立事件循环 (runloop),检测程序的各种事件 (程序开始启动,接收到触摸等等)
4> 应用程序代理
① 应用程序代理作用,根据应用程序传递过来的状态做出相应的处理。
② 应用程序的状态有很多,比如:程序启动、进入活跃状态、进到后台、内存警告、收到远程消息等等。
③ 任何接受了UIApplicationDelegate协议的对象都可以成为应用程序代理。
④ 一旦应用程序的某种状态触发,就会执行相应的代理方法。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!