UIWindow是是一个窗体,用来显示组件,相当于世一个容器
1,创建UIWindow
//创建window self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]]; //设置window的背景 self.window.backgroundColor=[UIColor whiteColor]; //设置window显示的view ViewController *vc=[[ViewController alloc]init]; //创建rootview UINavigationController *control=[[UINavigationController alloc]initWithRootViewController:vc]; //将rootview设置成根view self.window.rootViewController=control; //显示window [self.window makeKeyAndVisible ];//设置window显示
UIScreed可以看成就是手机屏幕,它提供了一个画布,可以在上面画各种视图控件,可以通过[[UIScreen mainScreen] bounds]来获取屏幕尺寸;
makeKeyAndVisible,把window设置成可显 的。
2,获得window
UIWindow *win=[UIApplicationsharedApplication].keyWindow;
3,获得父视图
//获取父视图
UIView *v=view1.superview;
NSLog(@"%@",[v class]); //UIWindow
4,UIView常用的结构体
CGPoint point = CGPointMake(x,y);//左上角坐标的位置 CGSize size = CGSizeMake(width,height);//大小 CGRect rect = CGRectMake(x,y,width,height);//位置和大小
5,UI常用属性
frame: 相对父视图的位置和大小 bounds:相对自身的位置和大小,所以bounds的x和y永远为0 center:子视图的中点坐标相对父视图的位置 transform:可以通过这个属性控制视图的放大缩小和旋转 superview:获取父视图 subviews:获取所有子视图 alpha:视图的透明度(0-1) tag:视图的标志,设置了tag后,可以通过viewWithTag方法拿到这个视图 userInteractionEnabled:是否响应用户事件
6,UIView的创建
self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.backgroundColor=[UIColor whiteColor]; ViewController *vc=[[ViewController alloc]init]; UINavigationController *control=[[UINavigationController alloc]initWithRootViewController:vc]; self.window.rootViewController=control; [self.window makeKeyAndVisible ];//设置window显示 //UIView视图的管理 UIView *view1=[[UIView alloc] init]; view1.frame=CGRectMake(100, 100, 100, 100); view1.backgroundColor=[UIColor colorWithRed:0.5 green:0.3 blue:0.1 alpha:0.3]; //将view1添加到window上显示 [self.window addSubview:view1]; UIView *view2=[[UIView alloc] init]; view2.frame=CGRectMake(200, 100, 100, 100); view2.backgroundColor=[UIColor yellowColor]; [self.window addSubview:view2];
在UIwindow上添加view1和view2(使用的是自动回收),
a,[self.window insertSubview:view2 atIndex:0];//添加到指定的位置
b, //获取子视图
NSArray *v1=self.window.subviews;
NSLog(@"%@",v1);
c,// 从视图把 移出,谁要移除来,谁就去调这个法
[ view2 removeFromSuperview];
d,view2.hidden=1;//隐藏View2
7,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属性找到搜索视图
相关推荐
UIWindow和UIView是构建用户界面的基础组件,它们在呈现内容和处理用户交互方面扮演着核心角色。 UIWindow是iOS应用程序的顶级视图容器,它提供了与屏幕的直接联系,管理着应用程序的显示以及事件的分发。UIWindow...
#### 一、UIWindow、UIView与CALayer的关系及区别 1. **UIWindow**:UIWindow是UIView的子类,主要功能包括: - 提供一个区域来显示UIView。 - 将事件(Event)分发给UIView。 - 一般情况下,一个应用程序只有一...
支持 CocoaPods! pod 'LCBlur' GitHub:https://github.com/iTofu/LCBlur 请在 GitHub 上查阅,以保证版本最新! 有问题请移步 GitHub!这里提问我收不到! (之前发过一次,效果没讲清楚,貌似不...)
动画是提升用户体验的有效手段,UIView提供了一系列的动画相关方法,允许开发者以简单的方式创建动画效果。例如,开发者可以使用动画方法改变视图的Frame、Bounds、背景色等属性,从而实现平滑的视觉变化。 UIKit...
`KeyBoardExtensionHUD`通过其他方式实现了类似`UIWindow`的功能,可能是利用`UIView`的叠加特性,或者使用`UIPresentationController`等API来管理显示内容。这样做的好处可能包括: 1. **简化代码**:不使用`...
UIWindow对象是所有UIView的根,管理和协调的应用程序的显示。一般应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。 在IOS中,UIWindow对象并没有像windows...
它是UIWindow中显示的第一个UIViewController,负责管理窗口内所有的视图和交互。当我们更改`rootViewController`时,系统默认会执行一个简单的淡入淡出效果。然而,为了创建更具个性化的转场动画,我们需要自定义这...
在iOS开发中,UIResponder是一个核心的概念,它不仅作为UIApplication、UIWindow、UIView等核心类的超类,还定义了对象如何响应和控制事件的接口。UIResponder类的存在使得开发者能够更加灵活地处理用户的各种输入...
在这个案例中,开发者创建了一个新的UIWindow,并将自定义的UIView(名为TestView)添加到这个窗口上,以便使它独立于主窗口显示。 在iOS中,status bar 是屏幕顶部显示时间、电池状态等信息的区域,其颜色和风格...
综上所述,本课程主要介绍了 iOS 应用开发中基本的 UI 编程概念和技术,包括 UIWindow、UIView、UILabel 的使用方法及其在实际项目中的应用场景。通过学习这些基础知识,初学者可以更好地理解 iOS 应用的构建原理,...
在iOS开发中,UIWindow是应用界面的基础组件之一,它为用户提供了一个显示内容的窗口,包括应用程序的主要视图控制器和各种界面元素。本教程通过"ios-UIWindow做的StatusBar.zip"压缩包,主要探讨如何利用UIWindow来...
在iOS开发中,UIWindow是至关重要的组成部分,它是所有用户界面的基础。UIWindow不仅是一个特殊的UIView,而且在应用...总的来说,iOS开发者应该熟练掌握UIWindow的使用,以便在项目中灵活控制用户界面的显示和交互。
尽管UIWindow是UIView的子类,但它通常不直接处理视图相关的属性。窗口的主要任务是管理和分发事件,如将触摸事件传递给相应的视图。值得注意的是,尽管iOS支持多个窗口,但为了保持用户界面的一致性和高效性,应用...
此外,课程还涵盖了UIView和UIWindow类、视图层次结构、透明度处理、内存管理、坐标空间以及自定义视图的创建等关键主题。 ### 协议(Protocols) 在Objective-C中,协议类似于接口声明,但不包含任何方法的实现。...
UIKit包含了如UIApplication、UIWindow和UIView等关键类,它们构成了iOS应用的响应者链。当用户与屏幕交互时,UIKit会生成事件并沿着响应者链传递,直到找到能够处理该事件的对象。例如,UIResponder是所有可以响应...
这通常涉及到对UIWindow或UIView的截图处理,通过UIKit框架中的`snapshotView(afterScreenUpdates:)`或`layer.presentation().contents`来实现。 其次,涂鸦功能让用户能够在屏幕上自由绘画。这需要一个可绘制的...
在iPhone OS(现在的iOS)中,UIWindow继承自UIView,意味着窗口本质上也是一个视图对象。然而,用户无法直接对窗口进行关闭等操作,所有的窗口操作都需要通过编程接口实现。 16.1.1 UIWindow的职责 UIWindow主要...
使用 Objective C 编写的 Mac OS 风格横幅,通过在 UIApplication 的 UIWindow 中添加 UIView 来尊重 iOS 的 iOS7 和 iOS8。 它添加为 ALL 的另一个视图顶部。 另外,使用块来关闭和触摸事件。 你喜欢它? 在您的...