在我们的项目中我们使用 axios 进行异步调用。 因为异步调用的问题,如果我不采取手段,子页面没有办法获得父页面中的数据,页面将会显示为 没有数据。...问题和解决 这个问题的原因就是子组件在初始化的时候,父组件还没有获得数据。 可以使用的方法是 v-if 进行判断。 对比上面我们使用了 v-if 判断的代码和没有使用判断的代码。...上面的代码能够让子组件正确加载数据。 另外一个需要注意的是,在子组件中需要使用 props:['projects','currentPage'], 将数据从父总结中传递过来。...从父组件中将数据传递过来。 https://www.ossez.com/t/vue/14083
本篇文章只有一个目的,那就是只要遵守协议,一行代码随意切换全屏~ 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程(一) iOS - Swift 面向协议编程...lxf_FullScreenable_1 以下分两种情况说明 UIViewController func enterFullScreen( specifiedView: UIView,...= nil ) 以上两个方法是对switchFullScreen的抽离,使调用时对参数的传递更加清晰 1、遵守协议 FullScreenable class LXFFullScreenView:...lxf_FullScreenable_3 结语 到这里相关的说明已罗列完毕,有什么不清楚的可以下载Demo看看,或者在文章下方留言提问 LXFProtocolTool 主要是通过协议的方式来方便快捷地实现一些的实用功能...,除了本文提及的全屏旋转功能外还有其它实用功能的封装,具体内容可以到 Wiki首页 查找。
开发语言 Swift 或者 Objective-C(本教程基于 Swift 5.x)。 开发者账号 个人 99 $/年 公司 99 $/年 企业 299 $/年 iOS系统四个层次 ?...Storyboard 中的界面与ViewController.swift之间的联系(一个界面与一个类文件关联)。...UIView与UIViewController的关系 UIViewController 中默认有一个和屏幕一样大的 UIView,UIViewController 管理着它的生命周期。...开发中的其他 UIView(及其子类)都放在该view上。 UIViewController中UIView的生命周期函数 viewDidLoad:View 完成内存加载。...UIView添加到UIViewController的View.png UIView的容器概念 UIView 中可以放其他的 UIView。 UIView 的层次关系(平级与包含)。
或者collectionView都是写在控制器里,那我们面向的类就规定为UIViewController,或许也有人写在UIView里,不过这里先按UIViewController来写吧 // MARK...// 3、的实现的方法写在这里 } 3、定义功能方法 将scrollView传递进来,让我们定义的方法来暗地里做些操作 func lxf_EmptyDataSet(_ scrollView: UIScrollView...要明白这里的self指的是UIViewController,考虑到UIView的可能,这里我就让万物对象之父NSObject来遵守,并实现对应的数据源方法和代理方法 extension NSObject...,非常地恰巧,我们定义的方法lxf_EmptyDataSet需要外界将UIScrollView传递进来,在DZNEmptyDataSet的数据源方法和代理方法也有scrollView。...UIImage else { return UIImage(named: "LXFEmptyDataPic") } return tipImg } 5、外界的使用姿势 class
Result 在Swift5之前,我们一般是采用上面的方式来处理异常,在Swift5之后,苹果推出了一个Result枚举,Result枚举可以更加优雅地去处理异常。...所以在Swift5中,新增了一个枚举Result,使我们能够更简单、更清晰地处理复杂代码中的错误。...objc func sleep() {} // 包含隐式的@objc } where关键字 在Swift中,很多地方都用到了where关键字,这里的where和数据库中的where差不多,都是用于条件过滤...访问权限 模块和源文件 模块:独立的单元构建和发布单位,可以理解为一个特定功能的代码集合,并且可以使用Swift的import关键字导入到另一个模块。...Swift中的类名的完整形式是:“命名空间+类名”,我们可以尝试在类中打印当前类来查看一下完整名字: class ViewController: UIViewController { override
14 查看项目编译时间 在终端中输入defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES 15 UIView拖拽...在 storyboard 或者 xib 中将一个 UIView 拖拽到另一个 UIView 时会默认成为其子 view,如果按住command进行拖拽即可成为平级关系。...18 视图测试 在 View debugging 时,选择某个 UIView,然后使用快捷键command + shift + D可以快速在左侧的调试导航器中定位该 UIView。...22 storyboard查看视图层次 在 storyboard 中,可以通过shift + 右击UIViewController或者control + shift + 单击UIViewController...查看某个 UIViewController 的视图层次结构。
] 再看cell的dequeue代码 [image.png] 数据的绑定,全部分散到了每个cell中。...高度计算 在iOS8之后UITableView中推出了Self-sizing的功能,所以Cell的高度改变 UIView *dummyView = [[UIView alloc] init...响应链可以解决的问题: 扩大相应区域 超出父类视图相应依然可以传递 垮图层传递事件 找到UIView的UIViewController - (UIViewController *)viewController...; } ButtonCell事件绑定代码: [image.png] 这里我们还是要用一个协议的: [image.png] 注意 用这个协议主要是方便代码的阅读,而且在Swift中是必须使用协议的,因为编译时找不到这个方法...部分,List部分我会在demo中给出 关于Detail和List的概念我会在第三节中介绍,第二节是Swift版的思路,Swift可以用到泛型,代码更优雅。
在很短的时间内,VIPER 变得流行起来,但是后来我们知道它有问题。这种体系结构需要大量协议,类以及层之间的数据传递。但是由于某些原因,所有这些额外的工作并不能使我们的设计更好,更易读。...如何将视图划分为 View 和 Controller?通常,它也适用于 iOS,甚至包含 UIView 和 UIViewController 的 iOS SDK。...重要的是要了解它是如何实现的。更确切地说,要意识到已经实现了 MVC。UIView 和 UIViewController 是已经在 iOS SDK 中实现的类。...它是基于 “MVC是具有3种类和巨大的UIViewController的模式”的错误思想而创建的。为了解决这个“问题”,VIPER 按 5 类进行了更多分解。...在 OOP 中,常见的任务是了解我们应该创建哪些实体,如何将它们彼此关联以及如何命名它们,从而以最清楚地描述代码。
随后,新建一个 Swift UI File,命名为 ContentView.swift。文件会自动生成一个 ContentView 的 Swift UI View。...接下来需要把 Swift UI View 用在 UIKit 中,需要用到 Swift UI 中的 UIHostingController 。这是可以把 Swift UI 包装成 UIView。...点击中央的 Button 之后将会 Push 到一个由 Swift UI 构建的 View。...将 ViewController 中 viewDidLoad 中代码替换成 swift 1super.viewDidLoad() 2let hostVc = UIHostingController(rootView...UIView 5 6view.addSubview(sview) 7sview.snp.makeConstraints({ make in 8 make.bottom.equalTo(view)
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。...假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步...1.在Oracle中建立对应的contract 和 contract_project表,需要同步哪些字段我们就建那些字段到Oracle表中。...我们将Oracle系统作为SQLServer的链接服务器加入到SQLServer中。...--清空Oracle表中的数据 INSERT into MIS..MIS.CONTRACT_PROJECT--将SQLServer中的数据写到Oracle中 SELECT contract_id,project_code
Swift 5.5 终于为开发者带来了async,await,actor这些便捷的异步语法,而其中一个小小的@MainActor语法,能带来让我们的开发更加便捷安全。...手动dispath到主线程 在swift 5.5 之前,我们需要手动使用DispatchQueue.main来让代码运行在主线程,特别是UI更新操作。这样没问题,但是略显麻烦,而且容易遗漏。...@MainActor class UILabel: UIView @MainActor class UIViewController: UIResponder 也就是,在swift 的concurrency...系统中,被@MainActor装饰过的类,及其子类的属性和方法,都会自动在主线程中,get,set,或者call。...result = result } } } @MainActor 不会对Callback中的代码生效 @MainActor 必须使用在Swift async/await Concurrency环境中
segue的可选项中就会有新添加的两个segue 选择正向的那个转场,也可以选择custom 然后设置segue对应的class 反向转场相对就要麻烦些了 反向转场是B–>A 首先在A中重写返回A时调用的方法...(不是B中)方法中设置转场调用的动画 详细实现 正向转场的实现类 // // PushSegue.swift // signDemo // // Created by PSVMC on 15/6/...0.1) source.view.alpha=CGFloat(1.0) destination.view.alpha=CGFloat(1.0); UIView.animateKeyframesWithDuration...// // CustomPushUnwindSegue.swift // signDemo // // Created by PSVMC on 15/6/9. // Copyright (c)...: UIViewController, identifier: String?)
触摸事件传递与响应 当触摸事件产生以后,App 里有很多的 UIView 或 UIViewController,到底应该谁去响应这个事件呢?...事件传递 当 iOS 程序中发生触摸事件后,系统会将事件加入到 UIApplication 管理的一个任务队列中。 UIApplication 取出最前面的事件传递给 UIWindow。...此时需要重写 UITabBar 的point方法,判断当前触摸位置是否在中间凸起按钮的坐标范围内,如果在返回 true。这样可以让触摸事件传递到凸起按钮,并让其成为最佳响应者。...响应者对于触摸事件的响应和传递都是在touchesBegan方法中完成的。该方法默认是将事件顺着响应者链向上传递,即将事件交给上一个响应者进行处理。...默认的next对象为: (1)UIView:若当前响应者是 UIViewController 的view,则next是 UIViewController,否则上一个响应者是其父 UIView。
cell里面可能还有几层UI,如何将这种层级很多很复杂的UI页面的事件传递到Controller中进行处理。一般的做法是用Block一层一层往外传,要不就是用Delegate一层层往外传。...先说一下iOS系统的事件传递,它是通过UIResponder从上往下传递的,UIWindow, UIViewController, UIView等都是继承自UIResponder的,所以它们都可以响应事件...开始遍历,一直找到最外层的view3.如果view3不处理事件,就是传递到view2,一级一级往上传递。...一般来说我们一个页面上的view不管在哪个层级,它的层级链里面都是有UIViewController这一层的。所以我们可以把事件标识好,在UIViewController这个层级再处理。...中重写routerEventWithName方法,处理掉事件,一般可能是UIViewController中。
View 连线 xib 既可以与 UIView 关联,也可以与 UIViewController 关联,也可以同时关联 UIView 与 UIViewController 使用 xib 通过 Bundle...UIView view.addSubview(testView) } 使用与 UIViewController 子类源文件关联的 xib Demo HomeViewController.swift...Objective-C IBAction IBOutlet IB_DESIGNABLE IBInspectable IBOutletCollection(ClassName) @IBDesignalbe 可以不运行程序的情况下把源文件中的一些代码实时渲染到...IB 中,但是源文件必须是 UIView 或者 NSView 的子类。...无法连线 IB 文件是否与源文件关联 @IBAction 红色提示 先在源文件中定义好方法,再从源文件 拖 到 IB 文件进行 连线
快速 - 用于Swift中的单元测试(也可用于Objective-C),与Xcode整合在一起。...MMPlaceHolder - 一行代码显示UIView的位置及相关参数。 XXPlaceHolder.swift - MMPlaceHolder的swift版本。...SwiftyBeaver - 一个完善的日志工具,支持彩色输出,输出内容到文件,重要性分级,多输出目标。工具执行在后台,不影响性能,可以极大提高开发效率。...MSLeakHunter - 自动检测UIViewController和UIView对象的内存泄露.MLeaksFinder的使用参照 CocoaLumberjack - 是一个快速,简单,但很强大的日志框架...; 5,展示不同的UI层; 6,如何创建支持滑动手势的应用程序。
UIView是UIKit框架里面最基础的视图类。UIView类定义了一个矩形的区域,并管理该矩形区域内的所有屏幕显示。 控件 ?...image.png 1个UIWindow 或 UIView 1、设置背景色 import UIKit class ViewController:UIViewController { override...super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } ---- 使用自定义视图:新建Swift...coder aDecoder:NSCoder) { fatalError("init(coder:) has not been implemented") } } 在ViewController中调用...import UIKit class ViewController:UIViewController { override func viewDidLoad() { super.viewDidLoad
Swift中的unowned和weak的区别: unowned更像OC里的unsafe_unretained; weak还是那个weak。...具体步骤是先获取对应的device实例(此时决定是用Video还是Audio),再由实例获取其Input Source。最后将input source add到session中。...最后将其也add到session中。 设置预览图层,即AVCaptureVideoPreviewLayer。...``` 中执行获取图像的具体逻辑。本例中是先将buffer转换为data,再转换为UIImage,最终write到相册文件夹中。...image.png 下一步,我打算再重新梳理下Swift语法,对这些项目进行小规模的重构,从结构上去看看能否挖掘到Swift的特性,从另一个角度(目前是功能角度)来学习Swift。
最近在学iOS开发,本系列会针对iOS从前到后的开发进行全面讲解,小到开发工具使用,大到应用市场上线。 ?...二、代码实现 2.1 程序入口说明 Application/AppDelegate.swift文件中的@UIApplication注解,表示这个Class类是程序的入口 ?...三、上述示例swift与object-c的语法对比 3.1 创建视图类比 - Swift: UIView(XXX:) - OC: [[UIView alloc] initWithXXX:] 类名()...,不需要使用`:` OC: @selector 3.7 调试对比 Swift: print(xxx) 效率高,log中不包含时间,用#function来打印当前执行的方法 OC: NSLog,用__FUNCTION...如下图所示,我在注释中添加了MARK、TODO、FIXME标签前缀,这些特殊标记的锚点菜单将会显示在导航栏上,点击菜单即可跳转到对应注释的地方,非常方便。 ?
解决这个问题的方法是可以使用参数化的工厂方法,可以给工厂方法传递一个参数(标识符),然后根据标识符来实例化特定的产品,这样我们就不需要各种 PageView 子类了。...像 Self、JavaScript 这样基于原型的语言可以说处处都用到了原型模式,而像SmallTalk、OC、Ruby 等动态语言中,类本身可以当作对象传递并用其创建实例对象,甚至在 Swift 中也可以直接用所谓的元类型...它最大的优点是灵活性,可以动态指定要创建的对象,而这点,可以通过传递“元类型”或者利用范型轻易做到。...,因为用 Builder 构造出来的产品往往差别很大,并没有一个统一的接口,所以只需要在子类中声明一个返回特定产品的方法即可(当然本例中其实最终构造的产品都是UIView,是可以提供一个统一接口的)。...但在 Swift 中,只要使用let声明一个常量,用它指向一个实例,它的 immutable 性质可以保证线程安全,然后把对应的构造器设为 private 就可以了,像这样: private let instance
领取专属 10元无门槛券
手把手带您无忧上云