ResizingTokenField 0.1.1

ResizingTokenField 0.1.1

Tadej Razborsek 维护。



  • 作者
  • Tadej Razborsek

ResizingTokenField

Build Status Version License Platform

使用 Swift 5 编写的标记字段实现。

Example GIF

特性

  • 可以在 Interface Builder 中使用或通过编程创建
  • 使用 UICollectionView 来显示标记,允许标记变化时进行动画处理
  • 自动更新内建高度,当内容添加和移除时
  • 支持将标记折叠成文本描述
  • 允许为标记提供自定义的 UICollectionViewCell

安装

Cocoapods

ResizingTokenField 通过 CocoaPods 提供使用。要安装它,请在您的 Podfile 中添加以下内容

pod 'ResizingTokenField', '~> 0.1.1'

Carthage

要通过Carthage进行安装,请在您的Cartfile中添加以下内容

github "tadejr/ResizingTokenField" "0.1.1"

用法

可以使用Interface Builder使用令牌字段 - 在布局中添加一个空的UIView并将其类设置为ResizingTokenField。它还可以通过使用init(frame:)来以编程方式初始化。

适用于自动布局;它提供内在内容高度,这意味着您只需固定其位置和宽度,宽度将随着内容添加到字段中而自动更改。在Interface Builder中,可以使用占位符内在尺寸设置来进行高度。

配置

可以通过设置适当的属性在ResizingTokenField实例上进行自定义。此外,还可以设置三个不同的委托来处理特定行为。请检查示例项目以获取更多信息。

旋转支持

令牌字段不会在边界改变时自动无效化布局。要处理设备旋转,您应手动无效化布局。

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    tokenField.invalidateLayout()   
}

高度更改动画

要动画化令牌字段高度的变化,应在令牌字段内在高度更改时在对视图存在适当的父视图上调用layoutIfNeeded()

func resizingTokenField(_ tokenField: ResizingTokenField, willChangeIntrinsicHeight newHeight: CGFloat) {
    view.layoutIfNeeded()
}

func resizingTokenField(_ tokenField: ResizingTokenField, didChangeIntrinsicHeight newHeight: CGFloat) {
    UIView.animate(withDuration: tokenField.animationDuration) {
        self.view.layoutIfNeeded()
    }
}

作者

Tadej Razborsek,[email protected]

通过许可信息

ResizingTokenField可用MIT许可。更多信息请参阅LICENSE文件。