文档章节

UIWindow与UIView

今日竹石
 今日竹石
发布于 2014/01/22 11:25
字数 491
阅读 221
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

(一): 看下类的关系:直接查看头文件:

  NS_CLASS_AVAILABLE_IOS(2_0) @interface UIWindow : UIView {

  @package

    id                       _delegate;

    CGFloat                  _windowLevel;

  。。。。。}


      就知道UIWindow是UIView的子类,可以进行管理应用程序的显示,事件之类的,传递给UIView.一般在一个应用程序中只有一个UIWindow,不过每一个UIWindow对象上面都有一个根视图对象是视图管理器(ViewController)。UIWindow在AppDelegate委托类中的application:didFinishLaunchingWithOptions:方法总进行初始化:

#pragma mark invoke after application loaded   

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  

{       

NSLog(@"加载完毕...");  

//init window  

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch.  

// 传入xib文件名来init controller

self.viewController = [[[PPSViewController alloc] initWithNibName:@"PPSViewController" bundle:nil] autorelease];  

// setting the root view of Window  

self.window.rootViewController = self.viewController;  

// 下面的代码和上面一条设置跟view效果一样  

// [self.window addSubview:self.viewController.view]; 

[self.window makeKeyAndVisible]; //view可见  

return YES;  

}  

     同时在根视图上面,我们还可以添加子视图。所有的控件都会继承UIView;

     看下UIWindow对象根视图UIView,还有子视图的对应关系好比如下的截图:

     


     最外边的黄色框代表:UIWindow,中间的橙色框代表UiView,最里边的紫色框代表:子视图(SubView)

     

 (二):接下来直接查看UIView的头文件:

NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem> {

。。。。

}

       上图很清楚的看出UIView类是继承自UIResponder,UIView是用来展示界面,以及和用户进行操作交互等功能;上面第一个点UIWindow中讲了可以在根视图UIWiew中添加子视图,下面就写一个例子:

 - (void)viewDidLoad  

[super viewDidLoad]; 

// 设置界面的背景  

[self.view setBackgroundColor:[UIColor redColor]];   

CGRect frame=CGRectMake(10, 170, 300, 50);  

// 使用指定的矩形进行创建标签  

UILabel *lable= [[UILabel alloc]initWithFrame:frame];  

lable.text=@"Hello,我是被添加的子视图";  

lable.textColor=[UIColor redColor];  

[self.view addSubview:lable];  

}  

    运行结果如下:

     

      上面就是把UILable的标签作为子视图加入到UIView中;


更多


上一篇: UIKit框架介绍
下一篇: UIAlertView的用法
今日竹石
粉丝 41
博文 227
码字总数 181391
作品 0
朝阳
程序员
私信 提问
加载中
请先登录后再评论。
CUSLayout

CUSLayout为iOS下提供托管定位机制。系统提供的绝对定位方式极不方便使用,另外iPhone的4寸屏幕的出现和iPad令iOS开发者在布局需要花更多的时间,然而iOS6.0提供的AutoLayout机制令人失望,所...

JJMM
2013/05/03
653
0
Filter View

实现高度自定义的tab bar。可以自定义每个tab的颜色、文字、背景图片等等,并且可以滑动选择不同的tab,也可以滚动视图时隐藏tab bar。这份代码实现的是tab bar控件,但不是UITabBar的扩展,...

匿名
2013/05/23
1.4K
0
PocketSVG

直接根据SVG生成CGPath/UIBezierPath。 使用场景: 1. 重写UIView的时候,直接从SVG文件获取CGPath进行绘制。 2. 替代庞大的png/jpg等图形文件,节约空间和内存。 3. 可以任意改写图形的Str...

匿名
2013/05/29
1.2K
0
iOS9系列专题一——3D Touch

新的触摸体验——iOS9的3D Touch 一、引言 在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,其原理上是增加了一个压力的感触,...

珲少
2015/09/26
1.8W
12
使用JavaScript和XML开发Apple tvOS应用

原文链接:http://blog.barat.cc/ios/apple-tvos-dev-with-tvml-tvjs/ Xcode7.1中附带了Apple tvOS的SDK,想必众多序猿童鞋们注意到,并且运行模拟器把弄了一番。关于AppleTV的开箱体验和测评...

巴拉迪维
2015/11/11
2.6K
4

没有更多内容

加载失败,请刷新页面

加载更多

如何在Android中以像素为单位获取屏幕尺寸 - How to get screen dimensions as pixels in Android

问题: I created some custom elements, and I want to programmatically place them to the upper right corner ( n pixels from the top edge and m pixels from the right edge). 我创建......

javail
53分钟前
7
0
如何在不安装Microsoft Office的情况下用C#创建Excel(.XLS和.XLSX)文件?

问题: 如何在不使用运行代码的计算机上安装Excel的情况下使用C#创建Excel电子表格? 解决方案: 参考一: https://stackoom.com/question/dHZ/如何在不安装Microsoft-Office的情况下用C-创...

技术盛宴
今天
7
0
如何使用pip升级所有Python软件包? - How to upgrade all Python packages with pip?

问题: Is it possible to upgrade all Python packages at one time with pip ? 是否可以通过pip一次升级所有Python软件包? Note : that there is a feature request for this on the off......

法国红酒甜
今天
21
0
活体检测+合成图鉴别面前,人脸“照片活化”黑产攻击一秒被擒

本文作者:y****n 如今,随着人脸技术的日趋成熟,新兴娱乐文化得到了极大的推动,尤其是随着 DeepFake、FaceSwap 等人脸编辑及生成技术的发展,虚拟主播、人脸合成带给人们全新的体验,但同...

百度开发者中心
昨天
12
0
如何在SQL Server中将多行文本合并为单个文本字符串?

问题: Consider a database table holding names, with three rows: 考虑一个包含名称的数据库表,该表具有三行: PeterPaulMary Is there an easy way to turn this into a single str......

富含淀粉
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部