iOS学习iOS 开发每天分享优质文章iOS开发

收集iOS--UIWindow的常用属性

2016-12-24  本文已影响121人  TenMios
//**************************************************  UIWindow

获取最上面的window

UIWindow *window =[ [UIApplication sharedApplication].windows lastObject];

[window addSubview:dropdownMenu];

NSLog(@“%@”,[UIApplication sharedApplication].windows)

self.window.rootViewController = [[RootViewController alloc]init];

self.view.window = [UIApplication sharedApplication].keyWindow

NSLog(@“%@”,[application.windows lastObjec]);

【 window makeKeyWindows 】 仅仅是成为主窗口 但是不会显示

【 window makeKeyAndVisible 】 又主窗口 又会显示  【做两件事情,让窗口变成了我,hidden = NO】

知识点: 越后面创建越叠在上面

如果是成员变量 _window

如果是全局变量 window_

窗口优先级:window.windowLevel = UIWindowLevelAlert最高->, UIWindowLevelStatusBar-> UIWindowLevelNorma最低【默认】;

需求:弹出一个新的控制器 ,实现半透明的效果。

问题:当你用present 的时候,就算你view背景设置了透明色,弹出的界面依然是黑色的。黑色的是window.

此时,你想要看到后面的控制器,但是它已经移除到外面去了。所以看不到后面的内容

解决方法: 1. 把 view 加上去 ,不再是弹出控制器

思路1:点击按钮的时候,创建一个半透明的控件,直接添加到窗口上去。

【此代码不全面 ,看视频】

MIOPublishViewController *publish = [[MIOPublishViewController alloc]init];

UIViewController *root =[UIApplication sharedApplication].keyWindow.rootViewController;

[root.view addSubview: publish.view];

[root addChildViewController:publish];  但这样写如果在tabbar 可能会出现问题的

思路2: 自定义窗口

UIWindow *window;

button click{

window =[ [UIView alloc]init];

window.frame = [UIScreen mainScreen].bounds;

window.backgroundColor =[ [UIColor yellowColor] colorWithAlphaComponent:0.5];

window.hidden = NO

}

上一篇下一篇

猜你喜欢

热点阅读