可视性 5.5

可视性 5.5

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布日期最后发布2018年8月
SPM支持SPM

Igor Matyushkin维护。




Visuality

概览

iOS开发者经常会遇到从NIB初始化视图(或视图控制器)的问题。在iOS SDK中,这种情况需要开发者编写大量代码

  1. 检查存放NIB文件的bundle是否存在😢
  2. 检查bundle内是否存在NIB文件😔
  3. 从NIB加载内容😡
  4. 从各种元素数组中找到合适的视图😡😡😡

Visuality为上述问题提供了强大的解决方案。您只需一行代码即可从位于任何bundle中的NIB初始化视图(当然包括视图控制器)!听起来很简单,不是吗?😉

这还不是Visuality所有功能的全部。还有更多功能!🚀

如何入门

  • Source文件夹的内容复制到您的项目中。

或者

  • 使用Visuality cocoaapod

要求

  • iOS 9及以后版本
  • Xcode 9及以后版本
  • Swift 4

用法

视图

要创建新的 UIView 实例,必须使用 .from() 静态方法

MyView.from(nib: <nib query>, inBundle: <bundle query>)

NIB 查询可以是以下值之一

  • byNibName("MyView") - 加载具有自定义名称的 NIB
  • byClassName - 加载具有视图类名称的 NIB
  • byClassNameWithSuffix(<suffix>) - 加载具有视图类名称和后缀的 NIB
  • none - 不加载 NIB 加载视图

NIB 名称可用后缀列表

  • _iPhone
  • _iPad
  • custom("suffix")

Bundle 查询定义包含所需 NIB 的程序包。可能的值为

  • main - 主要程序包
  • byInstance(bundle) - 需要类型为 Bundle 的实例
  • byIdentifier("com.example.App") - 需要程序包标识符

因此,如果您需要初始化与同一名称的 NIB 文件位于主程序包中的 MyView 类型的视图,您可以简单地写下

let view = MyView.from(nib: .byClassName, inBundle: .main)

视图控制器

视图控制器实例的初始化与视图的初始化非常相似,但还有一个额外的参数

let viewController = MyViewController.from(nib: .byClassName, inBundle: .main, loadView: true)

最后一个参数 loadView 是一个布尔值,指定视图是否应在创建视图控制器后立即加载。在大多数情况下,您不需要立即加载视图,但有时这确实是个很有用的选项。

默认情况下,loadViewfalse,因此,如果不需要立即加载视图控制器视图,则可以省略此参数

let viewController = MyViewController.from(nib: .byClassName, inBundle: .main)

在这种情况下,视图将在屏幕显示之前加载数据。

许可协议

Visuality 在 MIT 许可协议下可用。有关更多信息,请参阅 LICENSE 文件。