BlueprintUI 4.2.1

BlueprintUI 4.2.1

由以下人员维护:Andrew WattKyle BashourTim DonnellyKyle Van EssenBen CochranTimothy DonnellyDavid ApgarNick SillikWestin NewellNoah BlakeAlex OdawaMeher KasamRob MacEachernSteven Grosmark



  • Square

Build Status

Blueprint

使用 Swift 编写的 iOS 面声明性 UI 构建

Blueprint 大大简化了根据应用程序状态变化构建和更新视图的任务。

我们仍然认为 Blueprint 是实验性的(并且可能受到重大断开 API 变化的影响),但它已经在 Square 的生产级 iOS 应用中使用。

let rootElement = Label(text: "Hello from Blueprint!")
let view = BlueprintView(element: rootElement)

生成的文档可在 square.github.io/Blueprint 查找。

入门

Swift Package Manager

SwiftPM compatible

如果您正在开发自己的包,请确保在Package.swift中将Blueprint包含在dependencies

dependencies: [
    .package(url: "[email protected]:square/Blueprint.git", from: "0.3.0")
]

在Xcode 11及更高版本中,通过文件>>Swift Packages>添加包依赖...直接将Blueprint添加到您的项目中作为依赖项。在提示时提供git URL:[email protected]:square/Blueprint.git

Cocoapods

CocoaPods compatible

如果您使用Cocoapods来管理依赖项,只需将BlueprintUI和BlueprintUICommonControls添加到您的Podfile中

pod 'BlueprintUI'
pod 'BlueprintUICommonControls'

这个库做什么?

Blueprint提供了一种构架,允许您

  • 声明性地使用Swift的结构体和枚举定义纯值来定义UI层次结构。
  • 在您的应用中显示该层次结构。
  • 当应用状态改变时更新该层次结构(包括动画过渡)。
我应该何时使用它?

当您想要显示视图层次结构但不想管理视图生命周期时,请使用Blueprint(提示:管理视图生命周期是大多数传统UIKit代码的主要部分)。有时您 确实 想要管理视图生命周期(复杂的动画和过渡是一个很好的例子),在这些情况下,您可能希望坚持传统的做法。

它是如何与 UIKit 交互的?

Blueprint 不是 UIKit 的替代品!从一开始,Blueprint 就被设计成补充平台提供的所有强大工具。您可以使用 Blueprint 来管理单个视图控制器或表示屏幕一小部分的单个视图的显示。同样,在蓝图层次结构中托管标准视图和控制元素也很简单,始终让您有退路。


文档

入门教程

  1. 你好,世界

  2. 元素层次结构

  3. 构建自定义元素

  4. 布局

参考

  1. 元素

  2. BlueprintView

  3. ViewDescription

  4. 过渡

教程

教程设置说明

  1. 在视图控制器中使用 Blueprint

  2. 使用 Blueprint 构建收据布局


将 Blueprint 添加到现有项目中

提供两个模块

  • BlueprintUI 包含核心架构和布局类型。
  • BlueprintUICommonControls 包含代表一些常见 UIKit 视图和控件的元素。

Blueprint 通过 CocoaPods 提供。将其添加到您的 Podfile 以进行集成

target MyTarget do
    pod 'BlueprintUI'
    pod 'BlueprintUICommonControls'
end

发布说明


版权所有 © 2019 Square, Inc.

根据 Apache 许可证第 2 版(“许可证”)授权;不得用于本许可证协议之外的消息。您可以在以下位置获取许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据本许可证分发的软件按“原样”提供,不提供任何明示或暗示的保证。有关权限和限制的具体语言,请参阅许可证。