6.2 视图UIView及视图控制器(UIViewController)

一,视图及视图控制器
1.详细了解,及其属性和方法。如superView,subviews,frame,bounds,center,tag.和视图间的层次关系及层次的调整。

> 1,UIView类,这个类继承自UIResponder,看这个名字我们就知道它是负责显示的画布,如果说把window比作画框的话。我们就是不断地在画框上移除、更换或者叠加画布,或者在画布上叠加其他画布,大小当然 由绘画者来决定了。有了画布,我们就可以在上面任意施为了。
> 
 UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];  
2,UIWindow继承自UIView,关于这一点可能有点逻辑障碍,画框怎么继承自画布呢?不要过于去专牛角尖,画框的形状不就是跟画布一样吗?拿一块画布然后用一些方法把它加强,是不是可以当一个画框用呢?这也是为什么 一个view可以直接加到另一个view上去的原因了。
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
self.window.backgroundColor = [UIColor grayColor];       //给window设置一个背景色  

[self.window makeKeyAndVisible];     //让window显示出来  
3.UIScreen类代表了屏幕

 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
4,frame属性指的是视图在其父视图坐标系中的位置与尺寸。
center属性理解起来也很简单,它就是视图的中心点在其父视图坐标系中的位置坐标。
bounds它指的是视图在其自己的坐标系中的位置与尺寸。

1.superview,view的父视图
2.subviews,view的子视图
3.window,包含view的window
view hierarchy就是一个封闭的结构,就是一个view包含一个或多个view,而window包含所有的view。
例如:如果A view 加到 B view上面 那么 B 就是 A 的superview ,A就是B的subview 

(http://photo.blog.sina.com.cn/showpic.html#blogid=6de189920101jn4y&url=http://album.sina.com.cn/pic/0020L7Sqgy6HEOrVTXu6c)

5,通常我们在初始化页面后,在UIView 上动态的添加多个子 View 时,又没设置类成员变量,在相关的操作中又要使用到那些子视图的控件。这时我们就可以用 viewWithTag 这个方法来获取相关子视图的变量,以方便操作。使用viewWtihTag非常方便,可以通过父View的viewWtihTag获取到子View,但是前提是创建子View的时候要加tag,如:
    UIView *subviews  = [self.view viewWithTag:1000];
    [subviews removeFromSuperview];

2.了解MVC的设计模式,了解MVC模式基本原理,知道M-V-C之间的关系

http://blog.csdn.net/guomeijuan916/article/details/8207322
在学习任何一门面向对象的编程技术并熟悉它的基本语法和编程API后,都会进入使用具体语言进行软件项目开发的领域。面对一个应用项目我们该从何处入手?怎样的代码设计可以为将来打下最坚实的基础呢?
设计模式思想可以很好地帮助我们解决这个问题。**因为学习设计模式根本原因是为了代码复用,增加代码可维护性。**

3.明白视图控制器UIViewController的作用,了解其创建和使用

UIViewController在UIKit中主要功能是用于控制画面的切换,其中的view属性(UIView类型)管理整个画面的外观。当我们创建一个UIViewController类的对象时,通常系统会生成几个默认的方法,这些方法大多与视图的调用有关,但是在视图调用时,这些方法的调用顺序如何,需要整理下。UIViewController和Uiview是两个不同的类。UIViewController是视图控制器,而UIView是视图也就是说UIViewController是控制UIView的。 你也可以认为UIViewController就是一个相框 ,而UIView就是一个相片
相框可以随时随地的拿走这个相片而换另外一张相片,或者在这张相片上加一个新的相片。而相片却不能操纵相框的。 

4.学习视图控制器UIViewController的声明周期,明白下面的方法何时调用
1)- (void)viewWillAppear:(BOOL)animated
2)- (void)viewDidAppear:(BOOL)animated
3)- (void)viewWillDisappear:(BOOL)animated
4)- (void)viewDidDisappear:(BOOL)animated
等等

http://blog.csdn.net/huifeidexin_1/article/details/7566226
当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序
1、 alloc                       创建对象,分配空间
2、init (initWithNibName)        初始化对象,初始化数据
3、loadView                    从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图
4、viewDidLoad                 载入完成,可以进行自定义数据以及动态创建其他控件
5、viewWillAppear              视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
6、viewDidAppear               视图已在屏幕上渲染完成

当一个视图被移除屏幕并且销毁的时候的执行顺序,这个顺序差不多和上面的相反
1、viewWillDisappear            视图将被从屏幕上移除之前执行
2、viewDidDisappear             视图已经被从屏幕上移除,用户看不到这个视图了
3、dealloc                     视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放

运行APP —> 载入视图 —> 调用viewDidLoad方法 —> 调用viewWillAppear方法 —> 调用viewDidAppear方法 —> 正常运行

5.实现两个控制器之间的跳转(即从一个控制器如何跳转到另一个控制器)

6.实现界面之间的传值:(例如,创建三个按钮,标题分别为:红色、紫色、绿色,点击任意一个按钮,跳转到第二个界面,第二个界面显示背景颜色为对应的颜色;比如,点击绿色按钮,跳转到第二个界面,显示绿色背景)

你可能感兴趣的:(ui)