StackView 1.0.6

StackView 1.0.6

测试已测试
语言语言 Obj-CObjective C
许可证 zlib
发布最新发布2016年11月

Nick Lockwood 维护。



StackView 1.0.6

  • 作者
  • Nick Lockwood

目的

StackView 是一个用于简化在 iOS 中实现视图垂直堆叠的类。您可以将其视为类似简化版的 UITableView。

要使用 StackView,只需将其子视图添加到其中,然后它将自动调整大小并将它们堆叠起来,并可选择在它们之间应用间距值。这可以通过代码或 Interface Builder 做到。

StackView 自动处理视图调整大小(例如屏幕旋转时的情况)。

支持的 OS & SDK 版本

  • 支持的构建目标 - iOS 10.1 (Xcode 8.1, Apple LLVM 编译器 8.0)
  • 最早支持的部署目标 - iOS 5.0
  • 最早兼容的部署目标 - iOS 4.3

注意:“支持的”意味着库已与此版本进行测试。“兼容的”意味着库应该在该 OS 版本上运行(即它不依赖于任何不可用的 SDK 功能),但不再测试与兼容性,可能需要调整或修复错误才能正确运行。

ARC 兼容性

StackView 可以自动与或没有 ARC 一起工作。

线程安全性

StackView 从 UIView 派生而来,与所有 UIKit 组件一样,它应仅从主线程访问。

安装

要在应用中使用 StackView 类型,只需将 StackView 类型文件(不需要演示文件和资源)拖放到您的项目中。

属性

StackView 具有以下属性

@property (nonatomic, assign) CGFloat contentSpacing;

这是在 StackView 中的视图之间应用的间距(以点为单位)。您可以通过代码或使用 Interface Builder 中的用户定义运行时属性来设置此值。

@property (nonatomic, assign) CGFloat maxHeight;

当您调用 -sizeToFit 时 StackView 将扩展到的最大高度(以点为单位)。如果内容超出此高度,则 StackView 将滚动。请注意,StackView 是 UIScrollView 的子类,因此它继承了所有 UIScrollView 方法和属性。

提示

  1. StackView 继承了各种有用的属性自 UIScrollView,包括 contentInset,允许您将 StackView 子视图从边缘内缩。

  2. StackView 将自动对其所有子视图调用 sizeToFit。这意味着标签、按钮等通常会被拉伸到 StackView 的完整宽度,而图片将被设置为它们的自然大小。

    如果您不希望出现这种情况,只需在另一个 UIView 中嵌入您的视图,StackView 只会调整外部视图的大小(请参见示例项目中如何处理这个按钮)。

  3. 如果您需要在 StackView 项之间有可变的间距,可以插入一个高度为 0 的空白视图,以将两个连续视图之间的 contentSpacing 值加倍,或高度为 N 以创建大小为 contentSpacing * 2 + N 的间隔。

  4. 您可以嵌套 StackView,这对于创建层次结构或具有不同 contentSpacing 值的视图组很有用。

  5. 如果您在 Interface Builder 中(而不是从基本的 UIView 开始)将 UIScrollView 的类设置为 StackView,则 Interface Builder 允许您配置内容内边距和滚动条外观等属性。

发行说明

版本 1.0.6

  • 修复了某些设备上的滚动条问题

版本 1.0.5

  • 修复了 iPhone 6 Plus 上的额外底部填充

版本 1.0.4

  • 移除了错误底部填充
  • 现在在调用 sizeToFit 时更新布局
  • 现在遵从 -Weverything 警告级别

版本 1.0.3

  • 布局代码现在是 DRY(Don't Repeat Yourself)的
  • 修复了一些嵌套 StackView 的边缘情况
  • 改进了文档和示例项目

版本 1.0.2

  • 添加了用于在 StackView 调整大小时强制进行布局的代码

版本 1.0.1

  • 删除了一些冗余的布局方法
  • 改进了示例项目

版本 1.0

  • 首次发布