iOS开发UIWindow和UIView是什么关系
来源:互联网 发布:淘宝 手机端 图片尺寸 编辑:程序博客网 时间:2024/04/25 09:20
转载自:http://blog.csdn.net/weisubao/article/details/39613579
(1)因为xcode版本不同,最新的xcode已经不提供我们老版本可以随意创建的空白文档了(而是纯粹的什么都没有的project,是的,什么都没有),所以我们建立在单MVC模板之上,本例以及之前的所有的代码都是在ViewController.m中书写,而不是在AppDelegate.m中。所以我们这里的父视图其实是self.view而不是self.window,所以这里我们讲解的window其实在我们的模板里面只是view的子视图。
(2)我们除了设置window对象的hidden属性为NO之外,还要用self.view addSubView把它加载进去,这样我们的window才能显示。
(3)而且,由此可知,有些针对window的层架的属性操作,比如UIWindowLevelStatusBar其实不起效果了,因为window的层级由父视图self.view加载顺序决定,后加载的在上面遮盖其他视图。
(4)以后,我们只能把UIWindow视图当做一个UIView的子视图来运用,并在app中进行布局?或许暂时这是我们的猜测,继续前进。
(5)以前我们举例都说,它本身是一个window,如果里面有个播放器,这个播放器也是一个window加载在上面的。现在我们貌似都是用view说事了。至于如何从UIWindow逐渐改变到UIView的网上答案也很少,估计在某些场合UIWindow还是有很大用处的。
- #import "ViewController.h"
- @interface ViewController ()
- @end
- @implementation ViewController
- - (void)viewDidLoad {
- //
- UIWindow *window1=[[UIWindow alloc]init];
- UIWindow *window2=[[UIWindow alloc]init];
- UIWindow *window3=[[UIWindow alloc]init];
- window1.frame=CGRectMake(0, 0, 300, 300);
- window1.backgroundColor=[UIColor grayColor];
- window2.frame=CGRectMake(0, 0, 200, 400);
- window2.backgroundColor=[UIColor greenColor];
- window3.frame=CGRectMake(0, 0, 250, 200);
- window3.backgroundColor=[UIColor redColor];
- //window对象默认是隐藏的,需要设置一下
- window1.hidden=NO;
- window2.hidden=NO;
- window3.hidden=NO;
- //设置window视图的层级,无效。正常是Normal,一般状态栏是UIWindowLevelStatusBar层,一般设置后悔遮盖状态栏,而UIWindowLevelAlert层级最高在最上面,但此处无效,因为是加载在self.view中的,所以由加载顺序决定,其他设置都无效
- window2.windowLevel=UIWindowLevelAlert;
- window3.windowLevel=UIWindowLevelStatusBar;
- //设置之后,当然,需要加载进来,由此可见,在这里UIView最大,其他的UIWindow都是它的子视图
- [self.view addSubview:window1];
- [self.view addSubview:window2];
- [self.view addSubview:window3];
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- @end
我们在AppDelegate中尝试如下,没有效果,也不影响其他:
- @implementation AppDelegate
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- UIWindow *window4=[[UIWindow alloc]init];
- window4.frame=CGRectMake(0, 0, 100, 80);
- window4.backgroundColor=[UIColor purpleColor];
- window4.hidden=NO;
- window4.windowLevel=UIWindowLevelStatusBar;
- [self.window addSubview:window4];
- // Override point for customization after application launch.
- return YES;
- }
截个图:
0 0
- iOS开发UIWindow和UIView是什么关系
- 【iOS开发-18】UIWindow和UIView是什么关系,随着xcode版本增进UIWindow不重要了吗?求解答
- IOS开发之UIScreen和UIWindow,UIView
- iOS学习开发2:UIView和UIWindow
- iOS UIView 和 UIWindow 归类
- IOS的UIWindow和UIview
- IOS开发中的UIScreen、UIView、UIWindow和UIViewController
- IOS开发中的UIScreen、UIView、UIWindow和UIViewController
- IOS开发中的UIScreen、UIView、UIWindow和UIViewController
- IOS开发中的UIScreen、UIView、UIWindow和UIViewController
- IOS开发中的UIScreen、UIView、UIWindow和UIViewController
- IOS开发中的UIScreen、UIView、UIWindow和UIViewController
- iOS开发--UIScreen,UIWindow和UIView
- iOS开发之二:UIWindow与UIView
- IOS学习之UIWindow和UIview
- iOS 关于UIScreen和UIWindow,UIView
- iOS(学习4) UIWindow 和 UIView
- IOS UIView 和UIWindow的一些注意
- wince 加载网络图片,显示网络图片
- <首发dW> 初探IBM Bluemix——带您领略平台云
- C语言变量类型和值域
- 我的Eclipse配置备忘
- 淘宝类目及标题相关性分档计算方法(概率检索、BIM二元独立模型,BM25及向量空间模型)
- iOS开发UIWindow和UIView是什么关系
- 松下Let's Note RZ4C变形笔记本 仅重745g
- GIT和SVN之间的五个基本区别
- 在MFC中给按钮添加图标
- JAVA
- nmap
- 当s中的字符串为“123456”时,则逆序输出其奇数位置上的字符 “664422”。
- How to use GitHub with Android Studio
- android标题栏颜色的自定义,文本居中