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

平面检测-搜索真实世界的表面

ARSCNViewDelegate是一种协议,它包含许多方法来帮助跟踪摄像机视图中的对象。方法就像程序或例程来实现某些东西。 在编程中,委托是一种设计模式,允许类将其职责委托给另一个对象。...在我们的例子中,ViewController将自己指定为ARSCNView的委托,委托者,从场景视图中检索内容的任务,管理其更新并处理其事件。...添加锚点 让我们回到ViewController + ARSCNViewDelegate.swift。现在,让我们从ARSCNViewDelegate实现一个新方法来查找表面。...但是,Swift将角度存储在弧度中。如何将度数转换为弧度?我们应该回顾一下我们的高中数学。为了找到弧度的等价物,这里是等式。 根据图表,你会得到90度是pi的一半。...ARPlaneAnchor 更新平面锚点的尺寸的方法,我们首先必须将其从场景中删除,然后将其添加回来。对于的所有子节点的节点,从父节点删除它们。

2.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS架构设计:揭秘MVC, MVP, MVVM以及VIPER

    如何将Model传递到新View的View Model中? 谁创建了一个新的VIPER模块:Router还是Presenter? 为什么要纠结选择什么架构呢?...苹果的MVC有点问题,这个我们稍后再谈。 让我们定义一个优秀系统结构的特征: 1.角色间职责的清晰分配(分布式)。 2.可测试性通常来自第一个特性(不必担心:使用适当的系统结构是很容易的)。...事实上,在一个模拟器(如iPhone 4S)中测试UIViews并不能保证它会在其他设备良好的工作(例如iPad),所以我建议从你的单元测试Target中删除“Host Application”选项,然后脱离应用程序运行你的测试...绑定是从OS X开发中衍生出来的,但是我们没有在iOS开发中使用它们。当然我们有KVO通知,但它们没有绑定方便。...: 职责拆分 — 在例子中并不是很清晰,但是事实上,MVVM的View要比MVP中的View承担的责任多。

    1.4K20

    MVC VS MVVMM

    Model 是模型,是一种动态数据结构,用于管理程序的数据、逻辑以及规则,这句话是从 Wikipedia 翻译过来的,让人看了不知所云。...从服务器传来的数据,需要先将其存放到本地,然后再展现到页面上。这里就涉及到了一个 view 与 model 的对应问题。...如果将其全部都放到 ViewController 中,那么 ViewController 就耦合了两个职责:一是业务逻辑的转换,二是支持View 和 Model 的连接(实际上在写代码过程中,很多人把视图的绘制也放到了...ViewController 中,这样就担负了三个职责)。...在 SRP 原则下,ViewController 实际上只有连接这么一个职责,因此我们需要将这一业务逻辑的转换职责放到单独的类中来承担,也就是 ViewModel。 总结 模式都是原则的体现。

    49650

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

    图片来自网络 与iOS相比,在macOS中,控制器的转场情景相对要简洁一些,没有iOS中导航控制器的Push和Pop动画以及边缘返回手势, 保留下的Present方式,倒是提供了特有的切换方式, 可以供我们使用出许多效果...从Storyboard中的CustomView 连线的控件属性,用来作为容器视图,显示每个ChildViewController的内容 @IBOutlet weak var containView...{ 1. present 动画时,执行这个方法,因此在这个方法中实现自定义的动画效果 public func animatePresentation(of viewController: NSViewController...动画完成后,移除子视图 viewController.view.removeFromSuperview() } } } 示例效果: 自定义present...通常开发中如果没有特殊需求,transition的系统样式基本都可以满足使用.

    2.8K40

    聊聊基于MVP 模式下的软件设计

    我们来看一下MVP模式能否解决MVC模式存在的问题 【1】Controller层职责过多,Model和View层太简单 在MVP模式下,Controller层和View层已经合并为View层,专门负责处理...原本写在ViewController层的业务逻辑已经迁移到Presenter中。MVP模式较好地解决了Controller层职责过多的问题。...这个问题可以通过类别扩展或者通过面向接口编程的方式实现代码的分散管理。 通信方式 1. 当视图接收到来自用户的事件时,会将事件转交给 Presenter 进行处理; 2....,我们可以看到网络请求是放在 M层的这点和 MVVM中是不一样的,基本可以看到是通过 V(View & ViewController)持有 P,并通过 V实现 协议接口达到 P 向 V 通信的。...因为V收到的通知其实都是来自于P层的数据获取/更新操作, 所以我们只要保证P层的这些操作都是正常的就可以了. 即我们只用测试P层的逻辑, 不必关心V层的情况。

    60710

    编码篇-继承+通知看方法的实现和delloc方法的调用

    有一个问题:为什么从 UITableViewCell B中POP出后,UITableViewCell B没有被释放呢?...,这时需要在引用你的对象移除该delegate 3.一些其它的资源,类似地图页面。...C语言写的一些好内存的类文件, 4.控制器中NSTimer没有被销毁 当viewController中存在NSTimer时,需要特别注意,当调用[NSTimer scheduledTimerWithTimeInterval...比如viewController中有个block属性,在block中又强引用了self或者其他成员变量,那么这个viewController与自己的block属性就形成循环引用,导致viewController...很显然,UITableViewCell B不被释放是因为在初始化的时候注册的通知没有移除,也没有机会移除了,造成的每创建一个UITableViewCell B 都不会被释放,而是一直在内存中。

    81420

    微信支付的跨平台架构到底有多牛?

    来自:方秋枋 背景 作为一个重要业务,微信支付在客户端上面临着各种问题。...为什么需要软件架构 早在 1986 年的时候,人月神话的作者在讨论软件的复杂性时,谈到:软件的本质复杂性存在于复杂的业务需求中。 而管理复杂性,最根本的手段就是职责分离。...那么 ViewController 得不到复用,更致命的是业务流程的代码非常不清晰,业务流程的代码都被分散到各个 Controller 中, 而一个 Controller 又可能耦合了多个业务的代码。...和刚才基于 MVC 混乱的架构相比: 业务流程的代码能够聚合到 UseCase 中,而不是分散到原来 iOS, 安卓的各个 ViewController,Activity 中。...划分职责,明确生命周期 关于 Cgi 由谁发起,之前安卓和 iOS 都没有一个统一的做法。有些人会放到 Activity,ViewController,和 UI 代码耦合起来。

    1.2K10

    技术趋势:是什么让MVC悄然消失的?「建议收藏」

    当前端工程师拿走MVC的职责之后,自然会把MVC模式改成更适合前端的模式:MVVM。...MVC中的M就是单纯的从网络获取回来的数据模型,V指的我们的视图界面,而C就是我们的ViewController。...在其中,ViewController负责View和Model之间调度,View发生交互事件会通过target-action或者delegate方式回调给ViewController,与此同时ViewController...除此之外,从Controller抽离出来的与UI有关的逻辑都放在了ViewModel中,这样就减轻了Controller的负担。...这张图是从网上找的,MVVM还在学习阶段,后续补一张自己的 从以上的架构图中,我们可以很清晰的梳理出各自的分工。 View层: 视图展示。

    78620

    ARKit 教学:如何搭配SceneKit来建立一个简单的ARKit Demo设定ARKit SceneKit View从ARSCNView移除物件

    你需要准备的 进入本篇教学前,建议你已有对iOS的基础开发的能力,这属于中阶程度的教学,并且,我们将需要Xcode9以上的版本。...结合 连接IBOutlet 设定ARSCNView Session 允许相机使用权限 将3D物件加到ARSCNView 加入手势判断功能到ARSCNView 从ARSCNView移除物件 加入多样物件到...允许相机使用权限 在我们要执行我们的App之前,我们需要告知我们使用者,我们得使用相机来进行增强现实的应用,这是一个从iOS10就开始的必要询问告知动作,也因此,请打开info.plist 。...是时候来做些点击手势辨识方法物件内的调用方法 从ARSCNView移除物件 在ViewController.swift加入下列代码: @objc func didTap(withGestureRecognizer...然后,我们将从hitTestResults中移除掉第一个点位,如果hitTestResults内没得到任何一个点位,我们将会移除当初第一个点击 parent node。

    1.8K20

    聊聊iOS开发之MVVM的架构设计

    , 它的职责之一就是作为一个表现视图显示自身所需数据的静态模型;但它也有收集, 解释和转换那些数据的责任。...它是从 MVC 的 controller 中抽取出来的展示逻辑,负责从 model中获取 view 所需的数据, 转换成 view可以展示的数据,并暴露公开的属性和命令供 view 进行绑定。...} failure:^(NSError *error) { /// 失败的数据处理 }]; ViewController(视图控制器)在此中的作用 1、视图控制器从 viewModel获取的数据将用来...基于 MVVM 的更瘦身的架构设计方式 MVVM的出现主要是为了解决在开发过程中Controller越来越庞大的问题,变得难以维护, 所以MVVM把数据加工的任务从Controller中解放了出来,使得...而ViewManger的作用相当于一个小管家,帮助Controller来分别管理每个subView,ViewManger负责接管来自View的事件, 也负责接收来自Controller的模型数据, 而View

    8.8K92

    Container ViewController自定义转场控制器。

    这两个色块就代表前言中顶部的左右按钮,点击左边的色块会从左边弹出一个控制器,右边的同理。 ? 第二步,实现弹出控制器: 现在我们给左右按钮addTarget。...在`viewcontroller.m中引入,并添加如下属性方法: // 记录当前是哪个vc @property (nonatomic, strong) UIViewController *currentVC...; @property (nonatomic, strong) TestOneViewController *leftVC; // 移除掉不活动的vc - (void)removeInactiveVC...相对应的右侧弹出的实现方式一样,只是把Frame更改下,就可以实现从右侧弹出的效果。具体代码就不贴了。 如果想回到主页,只用写个移除self.currentVC的方法,调用下就可以了。...到这,大致的实现逻辑都已经讲明了。只是代码有点乱。如果要再项目中使用,第一个ViewController就相当于我们的主页,然后再主页里写这些逻辑就会把主页弄的很臃肿。

    71610

    微信团队分享:微信支付代码重构带来的移动端软件架构上的思考

    扩展阅读:本文引用的所有图片均来自《基于C++构建微信客户端跨平台开发框架(PPT) [附件下载]》,如有需要可前往下载PPT原稿。...5、为什么需要软件架构 早在 1986 年的时候,《人月神话》的作者在讨论软件的复杂性时,谈到:软件的本质复杂性存在于复杂的业务需求中。 而管理复杂性,最根本的手段就是职责分离。...那么 ViewController 得不到复用,更致命的是业务流程的代码非常不清晰,业务流程的代码都被分散到各个 Controller 中, 而一个 Controller 又可能耦合了多个业务的代码。...和刚才基于 MVC 混乱的架构相比: 1)业务流程的代码能够聚合到 UseCase 中,而不是分散到原来 iOS, 安卓的各个 ViewController,Activity 中; 2)业务流程和界面得到了复用...2)划分职责,明确生命周期: 关于 Cgi 由谁发起,之前安卓和 iOS 都没有一个统一的做法。有些人会放到 Activity,ViewController,和 UI 代码耦合起来。

    1.5K20

    IOS开发之绝对布局和相对布局(屏幕适配)

    (即改变水平约束和垂直约束的值)第一部就得把最上面的view的水平约束和垂直约束从我们的storyboard中把最上面View中我们要用的约束拖入到我们的Viewcontroller, 第一张图是storyboard...中约束所在的位置,第二张图把约束添加到ViewController中。...我们要做的事情就是在ViewController中通过改变slider的值来改变最上面View的水平约束和垂直约束,水平约束和垂直约束的相关变量我们已经拖拽过来了,下面就需要在Slider回调的方法中来改变水平和垂直约束的值...)sliderChange:(id)sender {     //为了避免冲突移除myView的水平和垂直约束,注意是从主视图上移除,因为约束是加载我们的主视图上,即相对于我们的主视图     [self.view....……”; ​2.所以在添加新的约束之前,我们得把之前加在我们组件中相应的约束给去掉;约束是加在我们对应组件的父视图上,移除也得从组件的父视图上移除; 3.在设置约束的值的时候我们是以字符串的形式把参数传递给约束的

    2.3K60

    聊聊iOS中的 MVC、MVP、MVVM以及 VIPER等代码组织方式

    于是 ViewController 最终就变成了所有东西的代理和数据源,甚至还负责网络请求的发起和取消。最后变得臃肿不堪。...现在 VIPER 从另一个角度对职责进行了划分,这次划分了五层。 VIPER并不复杂,它是将原来MVC中的Controller中的各种任务进行了清晰的分解,在写代码时,你会很清楚你正在做什么。...事实上,它比使用了数据绑定技术的MVVM更加简单,就是因为它职责明确。从MVC转到VIPER的过程同样是很清晰的, 它甚至把重构的思路都体现出来了。...向Interactor提供View中的数据 接收并处理来自Interactor的数据回调事件 通知View进行更新操作 通过Router跳转到其他...Presenter内部, 而在现实中的MVC中View会直接从Model中读取数据而不是通过 Controller。

    4.3K21

    iOS App 启动性能优化

    main()函数之后 从main()函数开始至applicationWillFinishLaunching结束,我们统一称为main()函数之后的部分。 3....同样的,在动态库一样多的情况下,ObjC的类越多,App的启动也越慢。需要加载的动态库从1个上升到10个的时候,用户几乎感知不到任何分别,但从10个上升到100个的时候就会变得十分明显。...移除不需要用到的动态库 因为WiFi管家是个小项目,用到的动态库不多,自动化处理的优势不大,我这里也就简单的把依赖的动态移除出项目,再根据编译错误一个一个加回来。如果有靠谱的方法,欢迎大家补充一下。...移除不需要用到的类 项目做久了总有一些吊诡的类像幽灵一样驱之不去,由于【不要相信产品经理】的思想作怪,需求变更后,有些类可能用不上了,但却因为担心需求再变回来就没有移除掉,后来就彻底忘记要移除了。...有时候对于一些暂时不再使用的代码,我也很纠结于要不要svn rm,因为从代码历史中找删除掉的文件还是不太方便。不知道大家有没有相关的经验可以分享,也请不吝赐教。 3.

    2.2K92
    领券