SwiftTickerView 1.5.0

SwiftTickerView 1.5.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2019年3月
SPM支持SPM

Martin Eberl维护。



  • Martin Eberl

SwiftTickerView

CI Status Version License Platform

动画我肯定会更新这个GIF,它现在看起来不再那么糟糕了!

1.5.0

以下有新渲染装饰者可供使用

  • initialRenderer(closure: (UIView, UIView?, SwiftTickerView, CGFloat) -> Void)将节点视图放置在您想要的位置
  • updateRenderer(closure: (UIView, CGFloat) -> Void)使用此功能自定义渲染选项,例如淡入项目或淡出
  • bottomToTopStopAtCenter(holdForSeconds seconds: TimeInterval)这可以用于创建在电视上常用的横条,横条节点在底部出现,当到达中心时保持一段时间,然后继续到顶部

1.4.3

  • 添加对iOS 9的支持

1.4.2

修复

  • 在启动时调用 reloadData 修复 ignoreSeparator #5

1.4.1

修复

  • 修复水平和垂直居中

1.4.0

通过添加新的装饰器轻松自定义渲染器

```Renderer.topToBottom.customize(with: SwiftTickerItemDecorators.prepareAtBottomInnerBorder(with: 8))```

以下新的渲染装饰器可用

*  ```prepareAtTopInnerBorder()```
*  ```prepareAtTopOuterBorder()```
*  ```prepareAtBottomInnerBorder()```
*  ```prepareAtBottomOuterBorder()```
*  ```prepareAtLeftInnerBorder()```
*  ```prepareAtLeftOuterBorder()```
*  ```prepareAtRightInnerBorder()```
*  ```prepareAtRightOuterBorder()```

通过实现 InitialRenderer & SwiftTickerItemDecoratorUpdateRenderer & SwiftTickerItemDecorator 来实现您自己的初始或更新渲染装饰器

以下新的计数器装饰器可用

  • 调用 tickerView.add(.ignoreFirstSeparator) 将装饰器添加到 TickerView 以启用 ignoreFirstSeparator

重命名

  • SwiftTickerView.Renderer.rightToLeft 重命名为 Renderer.rightToLeft
  • SwiftTickerView.Renderer.leftToRight 重命名为 Renderer.leftToRight
  • SwiftTickerView.Renderer.topToBottom 重命名为 Renderer.topToBottom
  • SwiftTickerView.Renderer.bottomToTop 重命名为 Renderer.bottomToTop

1.3.0

  • 现在您可以实现自己的渲染器

重命名

  • direction 重命名为 renderer
  • Direction.horizontalRightToLeft 重命名为 SwiftTickerView.Renderer.rightToLeft
  • Direction.horizontalLeftToRight 重命名为 SwiftTickerView.Renderer.leftToRight
  • Direction.verticalTopToBottom 重命名为 SwiftTickerView.Renderer.topToBottom
  • Direction.verticalBottomToTop 重命名为 SwiftTickerView.Renderer.bottomToTop

1.2.2

  • 现在支持 TV OS
  • 性能改进

示例

要运行示例项目,请首先克隆仓库,然后从示例目录中运行 pod install

要求

SwiftTickerView 通过 CocoaPods 提供。要安装它,请将以下行添加到您的 Podfile:

pod 'SwiftTickerView'

设置

您可以选择在 Storyboard 或 Xib 视图中嵌入 SwiftTickerView,或者像任何其他视图一样实例化视图。

let tickerView = SwiftTickerView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 30))

使用 separator 属性创建简单的文本分隔符,或设置分隔符视图类或 nib 创建分隔符视图。还可以实现 viewProvider 协议,按需操作分隔符视图和节点视图。

tickerView.separator = "+++"
tickerView.viewProvider = self
...

注册一些自定义节点视图,以便更容易地加载它们。

tickerView.registerNodeView(UILabel.self, for: labelIdentifier)

如果要在用户停止滚动视图(是的,用户可以通过点击滚动视图来停止视图)时获得回调,请实现 tickerDelegate 并不要忘记将其分配给滚动视图。您还将能够确定用户已选择的内容。

tickerView.tickerDelegate = self

此滚动视图旨在支持阿拉伯语、希伯来语以及其他语言。只需使用 direction 属性,即可确定是否希望内容从左到右、从右到左、从上到下或从下到上运行。

tickerView.renderer = SwiftTickerView.Renderer.rightToLeft

您可以管理内容在显示器上的运行速度。您可以在运行时修改此值,以增加或减慢滚动视图的速度。

tickerView.pixelPerSecond = 60 //default is 60

别忘了启动tickerview,否则它将无法工作

tickerView.start() 

最后但同样重要的是,实现contentProvider属性来提供你的内容!

顺便说一句,在viewProvider协议中,视图节点视图创建函数必须返回一个包含视图参数和可选的reuseIdentifier参数的元组。请使用此参数进行存储,以便于以后重用。

func tickerView(_ tickerView: SwiftTickerView, viewFor: Any) -> (UIView, reuseIdentifier: String?) {
    if let text = viewFor as? String,
        let label = tickerView.dequeReusableNodeView(for: labelIdentifier) as? UILabel {
        label.text = text
        label.sizeToFit()
        label.textColor = .white
        return (label, reuseIdentifier: labelIdentifier)
    }
    return (UIView(), reuseIdentifier: nil)
}

func tickerView(_ tickerView: SwiftTickerView, prepareSeparator separator: UIView) {
    if let separator = separator as? UILabel {
        separator.textColor = .white
    }
}

作者

马丁·伊伯尔,[email protected]

许可证

SwiftTickerView可在MIT许可证下使用。查看LICENSE文件以获取更多信息。