UI DAY01

来源:互联网 发布:虚拟装修软件 编辑:程序博客网 时间:2024/05/16 06:36

1.继承  is  a  ….Dog:Animal

耦合:两个类的关系过于紧密 

A:

test()

B:

…,test()

   a .has   a …. 人有心脏

*组合(人和心脏)、聚合(汽车和轮子)

组合    笔记本  一体机、品牌机  (外包公司)

//1.不需要自己创建属性对象

//2.属性对象不能替换

//3.使用简单

聚合  Diy台式机 (中国银行)

//1.自己创建属性对象

//2.如果属性对象不能满足需要可以换掉(灵敏度高)

//3.使用起来麻烦一点

聚合代码注意:属性对象  默认为空。  .h公有属性  .m私有属性

 

Computer  Cpu  Mem

 

 

b .通讯录

……联系人   (组合关系)

CRUD   create  read  update  delete

2.UIKit 框架

Foundation、UIKit 显示效果

 

计算机有两种操作方式(UIKit框架的使用):

命令行  计算机计算的原理

图形化  计算机操作的简化

 

3.第一个UIKit项目  目录结构

frameword 放的是系统的框架(目标文件和头文件)

…Tests 测试工作

主程序目录

main.m 依然是UIApp的程序入口(理论)

 

语言  语法  不可以 控制硬件

要实现  需要   语言、语法 ->IOS ->硬件(手机、平板)

嵌入式 可以控制

 

代理委托

程序 - >android -> 硬件

 

NSObject  -> 中包含函数方法  [[alloc]init] —> malloc  free最底层与硬件交互

APPDelegate 解决了自己写的程序与IOS系统沟通的问题

application … didFinishLanunching  入口

   Images.xcassets     ios5以后,会将图片信息放入此地

   info.plist  描述项目的配置信息

   infoPlist.trings  项目中的语言信息处理(本地化)

   Prefix.pch  预编译处理  条件编译

   Products:

*.app  项目的可执行文件,最终程序(*.exe, a.out)

 

模拟器:用电脑程序模拟生活当中的硬件。

IOS模拟器:模拟Iphone 或 Ipad。

 

程序的执行过程:

a.编辑

  main.m  -> AppDelegate -> ***didFinishLaunching

b.编译

*.app

c.上传 将*.app上传到模拟器中(真机中)

d.运行 在模拟器中(真机中)

 

注意:如果使用高版本的Xcode6.0以上  创建一个singleViewApplication 项目,然后点击项目修改main interface中的内容清空,相当于创建了一个EmptyApplication。

 

 

5.window 对象

在一个IOS的应用中,window对象一般只有一个,window对象负责一些系统功能,比如键盘管理,一般不负责具体界面的显示。为了可以在一个应用中切换界面,我们不会直接在window放置一些具体的控件、视图(Lable),而是应该给window对象设置一个根视图控制器(玻璃),作为第一个显示界面。

 

6.屏幕的窗口

显示内容的空间大小。

屏幕大小                 分辨率

点(坐标)                    像素

ipone3GS          320*480                320*480                           3.5寸

iPhone4             320*480                640*960                           3.5寸

iphone5/5s       320*568                640*1136                         4.0寸

 

   Retina屏上1个点  =  2*2个像素

非Retina屏上1个点 = 1个像素

 

注意:程序中计算位置和大小使用的单位是点,到了具体的硬件上,自动转换相应的分辨率。

坐标系:屏幕的左上角为(0.0)原点

如果在普通屏幕上一个点代表一个像素,在高清屏(Retina视网膜)屏幕上,一个点代表2*2个像素。

 

7.具体描述  

注意:如果你要赋值的是一个结构体必须传一个结构体,不能直接给成员赋值 day01-2中有例子

struct CGRect {

  CGPoint origin;

  CGSize size;

};

typedef struct CGRect CGRect;

 

struct CGPoint {

  CGFloat x;

  CGFloat y;

};

typedef struct CGPoint CGPoint;

 

struct CGSize {

  CGFloat width;

  CGFloat height;

};

typedef struct CGSize CGSize;

 

8.根视图控制器(root view controller)

视图  显示数据

视图控制器  控制显示什么数据

一个界面就有一个视图也就对应一个视图控制器

控制台的警告也是指的根视图控制器

根:最下面的视图控制器

 

程序执行顺序:

main.m->AppDelegate->window.rootViewController->ViewController->View->ViewDidLoad…

 

9.试图控制器(ViewController)和视图(View)

a.具体的功能

视图(view)就是我们看见的界面

视图是UIView类或子类的对象(与VC的关系是组合关系)

 

视图控制器(ViewController,简称VC)

控制视图如何显示对象

是UIViewController类或子类的对象

总结:一个界面通常就是一个视图控制器,显示部分由属性view来解决,显示的内容由视图控制器来解决。

b.之间关系

一般情况下,视图控制器默认就拥有一个视图,视图就是试图控制器的小跟班。在创建一个视图控制器对象(VC),此VC就拥有一个视图对象,作为VC的一个属性存在。self.view(组合)。

 

10.视图与window对象

window相当于电视机的显像管,视图相当于电视节目的元素。(显示的区域根据屏幕大小决定,只能看到一部分)。

0 0
原创粉丝点击