GZStackViewController 1.0.2

GZStackViewController 1.0.2

测试测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2017年3月
SwiftSwift 版本3.0
SPM支持 SPM

周汉轩 (Geno) 维护。



  • 作者
  • 周汉轩 (Geno)

StackViewController

UIKit 中有 UITableViewController 用于 UITableView,同时还有 UICollectionViewController 用于 UICollectionView。

那么为什么没有 UIStackViewController 用于 UIStackView 呢?

概述

此框架的关键组件是 AutoScrollView 类、StackViewContainer 协议和 StackViewItem 协议。

AutoScrollView 继承自 UIView,并通过对键盘和第一个响应对象进行监听来添加自动滚动功能。

StackViewContainer 设置创建一个功能齐全的 UIStackView 包装的需求,并提供了各种扩展,以便在自动滚动视图和堆栈视图之间内部管理添加/删除项。例如,包含了一个实现该协议的类 SimpleStackViewController,它提供了自动滚动、分隔符自定义、背景色属性等功能。

StackViewItem 提供了一个统一的接口,使 StackViewContainer 能够添加/删除视图和视图控制器,并跟踪所添加项的引用。

此外,还有一个符合 StackViewItemSeparator 协议的 UIView 子类 BaseSeparatorView,在 SimpleStackViewController 类中用作默认的分隔符。

安装

对于 Carthage

  1. 将以下内容添加到 Cartfile 的末尾

    github "GenoZhou/StackViewController" ~> 1.0
    
  2. 按照 Carthage 文档中的说明,在构建阶段中包含以下内容

    $(SRCROOT)/Carthage/Build/iOS/StackViewController.framework
    
  3. 正常运行 carthage update

对于 Cocoapods

  1. 将以下内容添加到您的 Podfile 中

    pod 'GZStackViewController', '~> 1.0'
    
  2. 正常运行 pod install

对于 Swift Hipster

拖放,随意吧:

如何使用

可以使用多种方式利用此框架。

您可以直接抓取 SimpleStackViewController,初始化一个实例,或从它子类化来创建魔法般的效果,只要它足够好,能满足您的需求即可。

包含了一个名为“示例”的独立项目,展示了初始化 SimpleStackViewController 实例并将其作为子控制器添加的方法。

但是,我 强烈建议您创建一个自己的视图控制器类,该类符合 StackViewContainer 协议。

SimpleStackViewController 实际上是一个非常好的例子,它可以无需定义任何方法就注入一大堆优秀的功能。

关于此项目

此项目受seedco/StackViewController的启发。概念非常出色,但实现对Geno来说似乎过于复杂,因此Geno最终制作了自己的版本。

待办事项

  • [x] 支持背景颜色
  • [x] 自动滚动支持
  • [x] Carthage/Cocoapods支持
  • [ ] 更好的示例
  • [ ] 单元测试
  • [x] 持续集成/持续部署(CICD)

许可证

本项目采用MIT许可证。有关详细信息,请参阅LICENSE.md。