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

iOS13 Scene Delegate

2)、SceneDelegate三处新增内容 iOS13以后,Xcode新建iOS项目中有增加三处新增内容: 1> 添加一个新的类SceneDelegate 新增SceneDelegateClass 2...应用创建scene(场景)后,scene session对象将跟踪与该scene相关的所有信息。...storyboard项删除 注意2:AppDelegate的有关事件循环的方法,iOS 13后是不会走的,iOS13以下的才会收到事件回调的。...接着为SwiftUI项目创建了ContentView实例,并通过使用UIHostingController将其添加为根视图控制器。 该控制器用于将基于SwiftUI的视图显示屏幕上。...scene(_: willConnectTo: options: )函数内,创建一个SwiftUI视图,将其放置托管控制器,然后将控制器分配给window属性的根视图控制器,并将该窗口放置应用程序

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

iOS面试题:MVVM和MVC的区别

View的如何构建(PS:IB或者手写界面)何必让Controller知晓,同时View不应该直接引用model(PS:现实,你懂的!),并且仅仅通过IBAction事件引用controller。...业务逻辑很明显不归入view,视图本身没有任何业务。 C:控制器controller。Controller是app的“胶水代码”:协调模型和视图之间的所有交互。...控制器负责管理他们所拥有的视图视图层次结构,还要响应视图的loading、appearing、disappearing等等,同时往往也会充满我们不愿暴露的model的模型逻辑以及不愿暴露给视图的业务逻辑...他们之间的结构关系如下: 2.1 MVVM 的基本概念 MVVM ,view 和 view controller正式联系在一起,我们把它们视为一个组件 view 和 view controller...主要成本在于: 数组内容的转化成本较高:数组里面每项都要转化成Item对象,如果Item对象还有类似数组,就很头疼。

1.4K30

IOS开发之视图视图控制器

UIWindow可以不借助于父类视图显示屏幕上,其余的视图都需要添加到父视图中才能显示。...窗口是用来显示视图的,下面我们将会结合着实例来具体的学习一下IOS的View和ViewController         1.首先我们需要建一个EmptyProject来测试我们的View和ViewController...我们空工程的文件结构如下,我们只需AppDelegate.m添加我们的视图,还是那句话为了更好的理解我们的视图所有视图的创建和配置我们都用代码编写。 ?         ...视图层大致分为下面的几类         1.容器视图                 容器视图用于增强其他视图的功能,或者为视图内容提供额外的视觉分隔,比如UIScorllView类用于显示内容太大而无法显示一个屏幕上的视图...UITextView类支持滚动区域内显示和编辑多行文本;而UIWebView类则提供显示HTML内容的方法          ?

1.7K70

唯一可行的 iOS 架构

Controller 负责管理其拥有的视图视图层次结构。他们响应视图的加载,出现,消失等等操作。他们还倾向于处理我们想脱离模型的模型逻辑以及我们想脱离视图的业务逻辑。...现在,所有代码都进入视图,演示者,路由器,交互器或实体之一。 ? 很短的时间内,VIPER 变得流行起来,但是后来我们知道它有问题。这种体系结构需要大量协议,类以及层之间的数据传递。...UIViewController 是 UIView 的所有者。它“控制” View 及其生命周期, View 上处理用户操作,并在 View 上显示 Model 的信息。 ?...如果您在此处编写业务逻辑,网络请求或其他与用户界面无关的内容,则不是 MVC。 • 如果需要,表示层创建其他类。IViewController 的存在并不会迫使您在此处编写所有代码。...如果您仅将应用程序体系结构视为具有确切类的“模式”,则无论如何都会失败。

1.2K20

Mac开发跬步积累(二):NSViewController 转场动画精耕细作

transition时,所有需要切换的child ViewController必须是同一个 super ViewController,否则会抛出异常错误....transition方法仅支持有父子关系的控制器结构. transition由父控制器super ViewController进行调用....从Storyboard的CustomView 连线的控件属性,用来作为容器视图,显示每个ChildViewController的内容 @IBOutlet weak var containView...动画效果 Summary(总结) macOS,控制器的转场切换无论是presentViewController方式或者transition方式,本质上都是将要显示的控制器视图View,通过addSubView...自定义present 动画时,需要注意事件穿透问题: 由于显示出来的控制器视图(Controller View)是通过addSubView方式添加到容器视图中,因此控制器视图(Controller

2.6K40

iOS 面试策略之经验之谈-架构的选择

接触到 App 的架构App 的架构就类似于现代建筑的脚手架或是地基——一旦确定,App 的骨架和结构就已经定型,剩下的工作就是现成的架构舔砖加瓦。那么具体来说,我们为什么要关心 App 的架构?...任何一个类或者结构体,只要不是数据或是视图,就被放在了控制器一层,而 ViewController 类耦合了视图和控制器,可以说这是 MVC 架构天生的缺点。...我们来看下 MVP 的结构: [image] 如图,MVP 的 View 是单独的 Class( MVP ,UIView 或是 UIViewController 都属于 View 层),它持有 Presenter...但是它的缺点在于,View 的所有交互都要传给 Presenter 去处理,这样就项目功能一旦增加,View 的代码和 Presenter 的代码都会增加。...视图层理论上都设计为被动,但是实际上略有不同。实际开发 MVC 中视图层与中间层高度耦合,几乎所有的操作都统一由 ViewController 包办。

98430

iOS——配适深色模式

适配深色模式 苹果在iOS13为iPhone引入了深色模式。那作为成为iOS程序员的我们也有事情做了,就是适配深色模式。...首先,所有 UIKit 本身所提供的 UI 控件(例如 UIView,UILabel,UITextView等等) ,只要没有针对颜色等内容特殊设置过,都会自动适配深色模式,这部分是我们开发者不需要去关心的...适配深色模式的过程,作为开发者,我们其实只要解决俩个问题: 1、如何判断当前的系统的颜色模式? 2、我们应该对哪些UI的内容适配深色模式? 如何去判断当前系统的颜色模式?...因此实际开发,我们可以创建我们自定义的动态颜色。...如果我们希望某个单独的视图以一种固定的显示模式来显示的话, 我们可以通过setOverrideUserInterfaceStyle这个方法来设置视图显示模式。

1.5K10

史上最强最贵Mac Pro诞生,iPadOS和iOS分家!WWDC19全面总结

一个迈入中年的公司,该如何持续做出让人惊艳的产品呢?答案就在WWDC 2019!...iPadOS:苹果集齐5大系统 多年以来,iPad苹果设备,一直夹在手机和电脑中“受气”,谁让iPad无论是接电话还是办公,都显得略有不足呢?...而且,无论是自带应用、还是第三方应用,都全面支持多窗口分屏,当两个Word窗口并排时,它可以支持Files应用新视图、元数据可视化、原生预览图、SD卡/U盘、支持SMB文件分享、压缩解压。...该黑暗“笼罩”所有苹果官方应用,就连通知也能用黑色。 要来就来全套的,苹果还把手机的照片应用、联系人、短信编辑页面等统统变黑。 用户使用暗黑模式时,点击控制中心的快捷按钮,就可切换黑暗模式。...照片以后也可按照日、月、年来显示,拥有机器学习功能的iOS13还会删除重复照片。

1.4K60

IOS开发系列——UIView专题之五:常用开发技巧篇

UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示ImageView,这意味着ImageView会有部分空白。...window对象会在首先在view hierarchy的顶级view上调用hitTest:withEvent:,此方法会在视图层级结构的每个视图上调用pointInside:withEvent:,如果...如果一个子视图的区域超过父视图的bound区域(父视图的clipsToBounds属性为NO,这样超过父视图bound区域的子视图内容也会显示),那么正常情况下对子视图视图之外区域的触摸操作不会被识别...UITouch对象有一个view属性,表示此触摸操作初始发生所在的视图,即上面检测到的hit-test view,此属性UITouch的生命周期不再改变,即使触摸操作后续移动到其他视图之上。...If there is noview controller, the method will return the superview 相关代码如下:遍历该View的树形结构,获取到其所属的ViewController

99820

浅谈MVC

最近的那个asp.net项目中,我的所有业务实体对象都是这么生成的,总共有近50个。...Controller在这里分两部分来讲可能更好理解:一部分是控制数据呈现,例如某个字段数据是直接显示文本内容还是根据不同数据值显示不同图片,这个由Controller来决定;另一部分是呈现完数据后界面与用户的交互处理...一旦这样设计,数据交换逻辑就简单多了,可以将所有网络请求都在一个ViewController中集中处理,各个子视图只管各自子控件的布局、显示。...(这个多半还是因为笔者对IOS开发工具不熟所致,还望见谅) 因为只有一个ViewController,所以所有响应事件的处理逻辑都在此ViewController对象声明与实现。...MVC,似乎数据流转到M就停止了(虽然也有很多基于服务端数据的APP应用),这是因为客户端数据量相对更少,客户端系统是以功能为中心的,相较于数据是什么,用户更关心数据是如何呈现的(或者叫数据的流转方式

92320

开源UI界面布局框架MyLayout1.9发布

MyLayout提供了iOS、Android、HTML/CSS等前端所有流行布局实现。因此无论你之前工作何种平台上都可以选择熟悉的布局类上手进行开发操作。...3.视图尺寸和位置的压缩 一些场景我们希望当所有视图的尺寸总和超过布局视图的尺寸时为了能让所有视图都得到完全的显示而需要对子视图的尺寸进行适当的压缩,对于位置也是如此。...这两个停靠属性的功能会将布局视图中的剩余空间均匀的分配到所有视图(设置有尺寸自适应的布局视图除外)的尺寸之上,而不管子视图是否设置了尺寸约束与否,从而实现子视图之间的尺寸拉伸效果。...具体的演示代码请参考DEMO工程的:FLLTest3ViewController 6.iOS13的黑白模式适配 iOS13以后提供了黑白模式适配的能力。...尺寸自适应的目的是为了让视图中的所有内容都得到完全的展示。 老版本的尺寸自适应设置 视图的自适应尺寸也算是一种特殊的尺寸。

1.7K10

窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

显示的数据了,正常开放这些数据往往来源于网络请求,而在本篇博客中就模拟数据源,来为我们的TableView提供显示的数据。...数据源的格式是一个数组,而数组存放的是多个字典,每个字典有两个键值对,一个键值对存储要显示图片的文件名,另一个键值对则存储美女的名字。为了使该数据的存储结构,请看下方结构图。 ?     ...上面使用的委托回调主要是使用Swift的协议(Protocol)来实现的。那么如何使用协议来实现你自己的委托回调呢?这将是下面将要介绍的内容。   二....我们需要做的就是,在上面界面,我们点击任意Cell就可以Push(导航控制器展示视图控制器的一种方式,可以理解为视图控制器压栈的过程)到一个ViewController,这个ViewController...上面的场景iOS开发中极为常见,使用场景也是比较广泛的。所以协议无论Swift还是iOS开发中都是极为重要的概念之一。

3.3K80

将模型添加到场景 - 您的环境显示3D内容

最后几节,我们能够检测到一个平面并显示一个焦点方块,以帮助我们为模型指定一个位置。我们也熟悉了热门测试和世界变换。现在,我们拥有显示虚拟对象所需的所有工具。...本教程,我们将学习如何检索模型并使用按钮的触发器将其呈现在场景。一旦显示,我们将隐藏焦点方块。...接下来,选择相同的ARKit SceneKit View并将其放回UIView之上。调整大小以填充整个视图控制器。...因此,我们将扩展它们的每一个。我们iPhoneX的场景编辑器完成了它。现在,我们在这里撤消它并代之以编码。让我们为所有边界将比例放回到1。...但是,如果我们屏幕上看不到任何内容呢?我们再次需要它来选择下一个位置。我们屏幕上看到的是不断变化的,所以我们需要在updateFocusSquare()实现它。

5.4K20

【IOS开发进阶系列】动画专题

图3.8 视图层级绿色视图被绘制红色视图的后面         我们希望真实的应用也能显示出绘图的顺序,同样地,如果我们提高绿色视图的zPosition(清单3.3),我们会发现顺序就反了...如果设置为1.0,将会显示一个有轻微模糊的黑色阴影稍微图层之上。...现实,这个点通常是视图的中心(图5.11),于是为了应用创建拟真效果的透视,这个点应该聚在屏幕中点,或者至少是包含所有3D对象的视图中点。...我们并不关心在这个容器如何摆放它们的位置,因为后续将会用图层的transform对它们进行重新布局,并且用Interface Builder容器视图之外摆放他们可以让我们容易看清楚它们的内容,如果把它们一个叠着一个都塞进主视图...我们不能在不打乱已有的视图层次的前提下在一个本身不是有寄宿图的图层中放置一个寄宿图图层。我们可以创建一个新的UIView子类寄宿CATransformLayer(用+layerClass方法)之上

39610

史上最详细的iOS之事件的传递和响应机制-原理篇

主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步。 找到合适的视图控件后,就会调用视图控件的touches方法来作具体的事件处理。...3.窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件。(至此,第一步已完成) ?...如果要求无论点击那里都要让redView作为最合适的view(把事件交给redView来处理)那么只能在whiteView的hitTest:withEvent:方法return self.subViews...如果当前view是控制器的view,那么控制器就是上一个响应者,事件就传递给控制器;如果当前view不是控制器的view,那么父视图就是当前view的上一个响应者,事件就传递给它的父视图 2>视图层次结构的最顶级视图...2.UIApplication会从事件队列取出最前面的事件,把事件传递给应用程序的主窗口(keyWindow)。   3.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件。

10.6K70

iOS开发UINavigation系列四——导航控制器UINavigationController

)animated; //压入新的视图控制器 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated...; //弹出到某个视图控制器 返回所有pop的controller - (nullable NSArray *)popToViewController...:(UIViewController *)viewController animated:(BOOL)animated;  //直接pop到根视图控制器,返回所有被pop的controller - (nullable...//iOS7之后,导航右划会进行pop操作,设置这个的enable可以控制设置手势是否失效 @property(nullable, nonatomic, readonly) UIGestureRecognizer... *interactivePopGestureRecognizer; 四、iOS8后导航的新特性 //这个方法是为了iOS方法的命名统一,导航,其作用和push一样 - (void)showViewController

1.8K20
领券