首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

View编程指南(二)

该window横跨设备整个主屏幕,并在应用程序生命周期早期从应用程序主要nib文件(或以编程方式创建)加载。...但是,如果应用程序支持使用外部显示器进行视频输出,则可以创建一个额外window来该外部显示显示内容。所有其他window通常由系统创建,通常是为了响应特定事件(例如来电)创建。...创建和配置一个window 您可以通过编程方式或使用Interface Builder来创建和配置应用程序主window。...例如,如果您应用程序支持在外部显示显示内容,则应在创建相应window之前等待显示器连接。 无论您应用程序是启动到前台还是后台,您都应始终启动时创建应用程序主window。...编程方式创建window 如果您希望编程方式创建应用程序main window,则应在应用程序中包含与以下代码相似的代码:didFinishLaunchingWithOptions:应用程序delegate

78510

UIViewController生命周期

一、视图控制器 UIViewController采用懒加载方式,也就是说第一次访问到view属性时才会加载或创建它。...这需要我们loadView 方法中,通过编程创建自己视图层次,并且把把根视图赋值给UIViewControllerview属性。...合创建一些附加view和控件 3、ViewWillAppear 视图加载完成,并即将显示屏幕时,会调用viewWillAppear方法,在这个方法里,可以改变当前屏幕方向或状态栏风格等。...2、UIWindow主要作用有: 1.作为UIView最顶层容器,包含应用显示所有的UIView; 2.传递触摸消息和键盘事件给UIView; 把view添加到uiwindow 3、把view...根据window显示级别优先原则,级别高显示最上层,级别低在下面,我们程序正常显示view最底层; 六、APP架构 七、整体架构

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

基础篇-UIApplication、UIWindow以及程序启动流程看我就够了

iOS程序启动完毕后,创建第一个视图控件就是UIWindow,接着创建控制器View,最后将控制器View添加到UIWindow,于是控制器View就显示屏幕上了。...一个iOS程序之所以能显示屏幕,完全是因为它有UIWindow,也就是说,没有UIWindow就看不到任何UI界面。 状态栏和键盘都是特殊UIWindow。...UIWindow层级 UIWindow是有层级,层级高显示最外面,当层级相同时,越靠后调用显示在外面。...(假如没有storyboard)就不会加载storyboard,也就不会帮我们创建UIWindow,那么我们需要自己程序启动完成时候也就是didFinishLaunchingWithOptions...1.创建窗口 UIWindow。 2. 创建并实例化view controller 3. 分配新视图控制器到窗口root viewcontroller,然后使窗口显示屏幕

1.5K20

iOS开发·UIWindow与视图层级调整技巧(makeKeyWindow,resignKeyWindow,makeKeyAndVisible,keyWindow,windowLevel,UIWind

例如,很多人习惯keyWindow添加一个自定义浮层视图,但是,当自己或者其它第三方框架曾经调高过其它自定义UIWindow属性windowLevel,或者有其它同级windowLevelUIWindow...显示相关属性:hidden 如果仅仅想显示一个UIWindow customWindow.hidden = NO; PS: 虽然设置自己hidden即可显示出来,但上述方法并不会"自动"影响之前显示...如果想显示一个UIWindow,同时设置为keyWindow,并将其显示同一windowLevel其它任何UIWindow之上 - (void)makeKeyAndVisible PS: 上述方法真的会将其显示同一...显示最上层UIWindow最后执行过该代码UIWindow为准。 2)....(hidden如果是从NO改为NO不 算 最后 改变UIWindow显示状态) 对于makeKeyAndVisible方法,最终显示最后 执行过 makeKeyAndVisible UIWindow

7.7K10

iOS-UIWindow详解

iOS程序启动完毕后,创建第一个视图控件就是UIWindow,接着创建控制器View,最后将控制器View添加到UIWindow,于是控制器View就显示屏幕上了。...一个iOS程序之所以能显示屏幕,完全是因为它有UIWindow,也就是说,没有UIWindow就看不到任何UI界面。 状态栏和键盘都是特殊UIWindow。...那么UIWindow是如何将View显示到屏幕呢 这里有三个重要对象UIScreen,UIWindow,UIView。...因此,当系统加载完info.plist,判断后发现没有main,就不会加载storyboard,也就不会帮我们创建UIWindow,那么我们需要自己程序启动完成时候也就是didFinishLaunchingWithOptions...层级 UIWindow是有层级,层级高显示最外面,当层级相同时,越靠后调用显示在外面。

1.9K40

【IOS开发基础系列】UIView专题

iOS程序启动完毕后,创建第一个视图控件就是UIWindow,接着创建控制器view,最后将控制器view添加到UIWindow,于是控制器view就显示屏幕上了。...一个iOS程序之所以能显示到屏幕,完全是因为它有UIWindow。也就说,没有UIWindow,就看不见任何UI界面。         ...2.把view添加到uiwindow         创建一个控制器,把view添加到uiwindow上面(有两种方式)     (1)直接将控制器view添加到UIWindow中,并不理会它对应控制器...该方法中,会创建一个Window,然后创建一个控制器,并把该控制器设置为UIWindow根控制器,接下来再将window显示出来,即看到了运行后显示界面。...如果中断了响应链,那么所有nextResponder都不会得知有事件发生,iOS也提供了这个方法,其实很简单:         我们重写TouchesEvents时候,如果不想让响应链继续传递

44430

IOS开发系列——UIView专题之一:UIWindow

iOS程序启动完毕后,创建第一个视图控件就是UIWindow,接着创建控制器view,最后将控制器view添加到UIWindow,于是控制器view就显示屏幕上了。...一个iOS程序之所以能显示到屏幕,完全是因为它有UIWindow。也就说,没有UIWindow,就看不见任何UI界面。...2.把view添加到uiwindow 创建一个控制器,把view添加到uiwindow上面(有两种方式) (1)直接将控制器view添加到UIWindow中,并不理会它对应控制器 [self.window...显示出来。...该方法中,会创建一个Window,然后创建一个控制器,并把该控制器设置为UIWindow根控制器,接下来再将window显示出来,即看到了运行后显示界面

71130

iOS四大对象之UIWindow及四大对象之间关系1. UIWindow使用纯代码加载根控制器2. UIWindow创建过程3. 四大对象之间关系

UIWindow/使用纯代码加载根控制器 UIWindow是一种特殊UIView,通常在一个app中只会有一个UIWindow -iOS程序启动完毕后,创建第一个视图控件就是UIWindow,接着创建控制器...view,最后将控制器view添加到UIWindow,于是控制器view就显示屏幕上了 创建第一个对象是:UIApplication 一个iOS程序之所以能显示到屏幕,完全是因为它有UIWindow...[window makeKeyAndVisible]; return YES; } 到这里还不会显示原因是因为作用域。...5.4.2 纯代码中创建过程 先执行Main函数,执行UIApplicationMain(),根据其第三个和第四个参数创建Application 创建代理,并且把代理设置给application 开启一个事件循环...该方法中,创建一个Window 然后创建一个控制器,并把该控制器设置为UIWindow根控制器 接下来再将window显示出来,即看到了运行后显示界面。 3.

1.7K30

UIview 和CALayer、UIWindow

它们分别所属框架 1.UIView是/System/Library/Frameworks/UIKit.framework中定义。...但归根到底CALayer是这一切基础,如果没有CALayer,UIView自身也不会存在,UIView是一个特殊CALayer实现,添加了响应事件能力。...UIwindow是UIView子类,UIWindow主要作用:一是提供一个区域来显示UIView,二是将事件(event)分发给UIView,一个应用基本只有一个UIWindow....iOS程序启动完毕后,创建第一个视图控件就是UIWindow,接着创建控制器view,最后将控制器view添加到UIWindow,于是控制器view就显示屏幕上了。...一个iOS程序之所以能显示到屏幕,完全是因为它有UIWindow。即没有UIWindow,就看不见任何UI界面。

62960

Cocoa编程中视图控制器与视图类详解

iPhone编程规则是:一个窗口,多个视图。UIView是iPhone屏幕很多控件基础类。...每个iPhone用户界面都是由显示UIWindow(这其实也是个特殊UIView)内众多UIView及其专门化子类构建。...视窗UIWindow虽然也是UIView,但不能用处理普通UIView方式来设置; 2....1.作用: •创建和管理视图。 •管理视图上显示数据。 •设备方向变化,调整视图大小适应屏幕。 •负责视图和模型之间数据及请示传递。 2....控制器加载视图过程 当调用视图控制器view属性时,视图控制器会先调用loadView方法加载视图,因此,可以loadView方法中创建所有的视图,这是比较好编程惯例。

5K50

【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

属性 : 代表 IOS 应用程序窗口, 一个应用只需创建一次 UIWindow 窗口; -- FKViewController 属性 : 代表视图控制器, 系统创建控制器时, 通常会加载对应 xib...UIWindow对象,并初始化该窗口大小与主屏幕大小相同 // 程序将创建UIWindow对象赋值给该程序委托对象window属性 self.window = [[UIWindow alloc...} @end -- 重写 application 方法 : 应用程序加载时会回调该方法; application 方法流程 :  -- 创建 UIWindow 对象 : 创建 UIWindow...UIWindow对象,并初始化该窗口大小与主屏幕大小相同 // 程序将创建UIWindow对象赋值给该程序委托对象window属性 self.window = [[UIWindow alloc...自定义 UI 控件 (1) 自定义组件简介 自定义组件简介 :  -- UIView 基类 : 所有的 UI 控件都继承了 UIView 基类, UI 组件 UIView 提供空白区域绘制具体细节

4.9K30

WWDC20中iOS改变

WWDC20中,绝大部份同学都会把注意力放在了iOS布局改变和自研芯片,这方面的文章也比较多,但作为一名开发者,更多聚焦iOS官方语言和官方库上来,这里仅找出几个更新比较大点给大家分享。...data sources介绍是数据源方面的工作 值得一提是,UICollectionView升级是2019年开始,所以20分享更多19基础,对这方面感兴趣同学可以从19开始看,这里推荐一篇文章...现在可以iOS 13使用。PencilKit使开发人员可以轻松地在其应用程序中集成绘图画布视图和工具包。 PencilKit可让您轻松快捷地将手绘内容整合到iOS或macOS应用中。...PencilKit为iOS应用程序提供了一个绘图环境,该环境可以从Apple Pencil或用户手指中获取输入,并将其转换为您在iOS或macOS中显示高质量图像。...该环境附带了用于创建,擦除和选择线条工具。

1.7K10

iOS开发--UIWindow与程序启动原理与两种创建控制器方法

Paste_Image.png UIWindow UIWindow是一种特殊View 1.iOS启动完毕后,创建第一个视图控件就是UIWindow。...2.接着创建控制器View, 3.然后将控制器view添加到UIWindow 4.于是控制器View就显示屏幕上了。...创建窗口 2.加载main.storyboard,并且加载main.storyboard指定控制器 3.把新创建控制器,作为窗口根控制器,让窗口显示出来 1、手动创建窗口步骤 1.自己加载程序启动...Paste_Image.png 设置控制器View = vc.view.alpha = 0; 那么Windows添加按钮可以点击, 如果设置控制器View颜色为透明色,但是系统认为只是几乎透明...Paste_Image.png 相当于:我已经加载过ViewDidLoad后,才能设置颜色,所以上面的View蓝色并不会显示 ?

1.1K20

WWDC20全球开发者大会上开发者必须了解这些事

苹果还将在明年新开发者论坛为开发者创建更多渠道,分享反馈。在这些论坛中,鼓励开发者分享他们建议,无论大小,以便苹果公司可以继续实施更改并改善整个开发者社区App Store 体验。...PencilKit现在具有Scribble功能,可以轻松创建带有文本输入字段应用程序,用户可以使用Apple Pencil进行书写。...开发者还可以使用PencilKit访问笔划数据,同时无缝处理Apple Pencil输入和系统触摸手势。 Swift Package Manager添加了对资源支持,轻松共享资产目录捆绑和本地化。...Hey 年度会员费缴纳方式为从公司网站上缴纳,而且从 APP 不会告诉用户在哪里购买,所以 Hey 认为自己遵循了苹果软件商店所有规则,在这样情况下依然被苹果拒绝架,Hey 开发者表示很绝望...技术相关内容来自苹果官方网站

1.2K20

程序启动完整过程

,就会调用代理application:didFinishLaunchingWithOptions:方法 application:didFinishLaunchingWithOptions:中创建UIWindow...创建和设置UIWindowrootViewController 显示窗口 3.根据Info.plist获得最主要storyboard文件名,加载最主要storyboard(有storyboard...) 创建UIWindow 创建和设置UIWindowrootViewController 显示窗口 窗口(UIWindow) 一种特殊UIView,一个app中至少有一个UIWindow iOS...启动完毕后创建第一个视图就是UIWindow 接着创建控制器,再把控制器View加到UIWindow显示出来 - didFinishLaunchingWithOptions:方法中代码创建控制器...控制器没加到窗口中或者设为跟控制器 - didFinishLaunchingWithOptions:方法中代码加载storyboard控制器 // 1.创建窗口 self.window

1.5K150

使用CoreML和ARKit进行人脸检测和识别

,并且因为不喜欢使用故事板,所以应用程序编程方式完成,这意味着没有按钮或开关切换,只需要纯粹代码。...创建场景并将其添加到子视图 只有一个ViewController,它将是应用程序主要入口点。 在这个阶段,需要导入ARKit并实例化一个ARSCNView自动渲染来自设备相机实时视频作为场景背景。...它还会自动移动其SceneKit摄像头匹配设备真实世界移动,这意味着不需要锚点来跟踪我们添加到场景中对象位置。...MLImageClassifierBuilder()和一组67个图像,这些图像是'Omar MHAIMDAT '和一组261 unsplash找到'未知'面孔。...尽管如此,仍然可以屏幕投影3D文本,但它不会跟踪面部运动并相应地进行更改。

2.4K20

iOS14适配汇总:【1、隐私权限相关:定位、相册、IDFA 2、KVC相关3、UIView相关;4、网络相关】

比如发现了JCore iOS SDKiOS 14引用剪贴板,该行为导致APP被用户怀疑隐私泄露,请予以重视 II、KVC相关适配 iOS14 适配:【KVC 不允许访问 UIPageControl...【 采用hook全局性地解决UITableViewCell兼容问题】往cell添加子视图方式不规范,导致contentView 置于自定义控件上层,引发界面无响应(注意处理相关方法) 因此问题涉及是添加子视图...方法处理机制(问题:无法显示图片) IV、第三方框架相关 4.1 QMUIKit iOS14 下首次唤起键盘卡住主线程 Main Thread Checker: UI API called on a...检测方式可以打条件符号断点,然后把 QMUI 那段代码注释掉,运行起来后会发现依然能命中这个断点,说明系统自身确实是子线程访问了(UIKit 这种行为特别多,不只是这里)。...所以从原理上看,QMUI 命中这个主线程检测是不可避免,目前只是做了一些优化,只有真正使用了 QMUITheme 组件时才会出现这个情况,没使用时候就不会命中,减少一部分出错场景。

1.6K30

iOS面试题:UIWindow,UIView,CALayer区别

iOS程序启动完毕后,创建第一个视图控件就是UIWindow,接着创建控制器view,最后将控制器view添加到UIWindow,于是控制器view就显示屏幕上了 主要作用是提供一个区域用来显示...对于UIView,侧重于对内容显示管理;其实是相对于CALayer高层封装。 3....interface CALayer : NSObject 直接继承自NSObject,所以不能响应事件 其实就是一个图层,UIView之所以能显示屏幕...创建UIView时,它内部会自动创建一个图层,当UIView需要显示屏幕时候,会调用drawRect:方法进行绘图,并且会将所有内容绘制到自己图层,绘图完毕后,系统会将图层拷贝到屏幕,这样完成...UIView显示

79730
领券