美文网首页
UIView和UIWindow之间的关系

UIView和UIWindow之间的关系

作者: Z_Han | 来源:发表于2016-07-29 15:48 被阅读188次

iPhone OS通过UIView和UIWindow在屏幕上展现图形内容。UIWindow为内容显示提供背景平台,而UIView负责绝大部分的内容描画,并负责响应事件。

简单的讲,UIView需要一个窗口UIWindow来展示页面,而UIWindow类似于一个UIView。

1、继承关系

UIView是视图的基类,UIViewController是视图控制器的基类,UIResponder是表示一个可以在屏幕上响应触摸事件的对象;UIWindow 继承于UIView, 但这个 UIWindow 是一个重中之重的View。


2、UIWindow

UIWindow对象是所有UIView的根视图,管理和协调的应用程序的显示。UIWindow类是UIView的子类,可以看作是特殊的UIView。一般应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。在AppDelegate的didFinishLaunchingWithOptions方法中,有这样一段code:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;
self.window.backgroundColor = [UIColor grayColor];       //给window设置一个背景色 
[self.window makeKeyAndVisible];     //让window显示出来  
//在本应用中打开的UIWindow列表,这样就可以接触应用中的任何一个UIView对象!
[UIApplication sharedApplication].windows

/**
*程序中每个时刻只能有一个 UIWindow是keyWindow。
*如果某个UIWindow内部的文本框不能输入文字,
*可能是因为这个 UIWindow不是keyWindow
**/
[UIApplication sharedApplication].keyWindow;

//获得某个UIView所在的UIWindow!
view.window;
- (void)makeKeyWindow;//让当前UIWindow变成keyWindow(主窗口)!
- (void)makeKeyAndVisible; //让当前UIWindow变成keyWindow,并显示出来!

3、UIView

UIView对象定义了一个屏幕上的一个矩形区域,同时处理该区域的绘制和触屏事件。可以在这个区域内绘制图形和文字,还可以接收用户的操作。一个UIView的实例可以包含和管理若干个子UIView,常用方法:

- (void)removeFromSuperview;将视图从父视图中移除
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;插入一个视图到指定位置,视图越在下面,index越小
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;将index1和index2位置的两个视图互换位置

- (void)addSubview:(UIView *)view;添加视图到父视图
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;插入视图到指定视图的下面
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;插入视图到指定视图上面

- (void)bringSubviewToFront:(UIView *)view;把视图移到最顶层
- (void)sendSubviewToBack:(UIView *)view;把视图移到最底层
- (UIView *)viewWithTag:(NSInteger)tag;根据视图的tag属性找到搜索视图

4、题外话

UIViewController对象负责管理所有UIView的层次结构,并响应设备的方向变化。UIScreen可以获取设备屏幕的大小。

感谢:http://blog.csdn.net/kuqideyupian/article/details/7731942

相关文章

  • UIView和UIWindow之间的关系

    iPhone OS通过UIView和UIWindow在屏幕上展现图形内容。UIWindow为内容显示提供背景平台,...

  • IOS开发 UIWindow对象

    本节学习内容: 1.UIWindow的对象概念 2.UIWindow和UIView的关系 【AppDelegate...

  • UIWindow 和 UIView关系

    UIWindow继承于UIView,可以说是一个特殊的UIView,可以通过UIView来实现。 UIWindow...

  • UI基础

    [TOC] UIView与UIWindow之间的关系 在IOS中使用window和view来展现应用程序的内容。w...

  • IOS关于UIWindow的困扰

    1.UIWindow、UIViewControl、UIView三者的关系 一个UIWindow可以创建多个控制器和...

  • UIWindow和UIView和 CALayer 的关系

    UIView是视图的基类,UIViewController是视图控制器的基类,UIResponder是表示一个可以...

  • UIWindow和UIView

    UI第一天 UIWindow window:窗口,一个应用想要展示在屏幕上,至少要有一个window.一个手机应用...

  • UIWindow 知识梳理

    UIWindow简介 在iOS开发中,UIWindow和UIView一样都是用来呈现界面的。UIWindow并不包...

  • UIView与UIWindow,UIRespnder那些事儿

    UIView与UIWindow Uiview需要一个窗口UIWindow来展示页面,而UIWindow类似于一个U...

  • UIView和CALayer

    问题:UIView和CALayer的区别与联系是什么?UIWindow和UIView和CALayer 的联系和区别...

网友评论

      本文标题:UIView和UIWindow之间的关系

      本文链接:https://www.haomeiwen.com/subject/uffhjttx.html