Sonar 5.1.0

Sonar 5.1.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新版本2020 年 1 月
SPM支持 SPM

Futured 维护。




Sonar 5.1.0

Sonar

Build Status Version License Platform

简单雷达风格视图,用 Swift 编写,纯 CoreAnimation(无图片)。调整性高。

用法

只需将 UIView 放置在控制器中的某个位置,并使其为 SonarView 类。

SonarView 复制了 UITableView 的数据源和委托模式。

/// Data source
public weak var dataSource: SonarViewDataSource?

/// SonarViewDelegate and SonarViewLayout
public weak var delegate: SonarViewDelegate?

有三种必需的方法。

public protocol SonarViewDataSource: class {
    func numberOfWaves(sonarView: SonarView) -> Int
    func sonarView(sonarView: SonarView, numberOfItemForWaveIndex waveIndex: Int) -> Int
    func sonarView(sonarView: SonarView, itemViewForWave waveIndex: Int, atIndex: Int) -> SonarItemView
}

SonarItemView 是一个 UIView 子类。为了在雷达中使用您自定义的视图,请让您的视图成为 SonarItemView 子类。视图的大小通过布局来确定。布局由 SonarViewLayout 协议定义。Sonar 提供了一个预定义的布局 - SonarViewCenteredLayout。波浪中的项从边缘到中心放置,例如,如果有 4 项在波浪中,第一个放在左侧,第二个放在右侧,第三个再次放在左侧但位于第一个的右侧,依此类推。我知道,图片会更好

如果您需要不同的行为,您当然可以创建自己的布局,通过采用 SonarViewLayout 并将其传递给 SonarView。有关更多信息,请参阅 SonarViewLayout

最后一个协议是委托,用于处理每个波浪的选定项目和标题

public protocol SonarViewDelegate: class {
    func sonarView(sonarView: SonarView, didSelectObjectInWave waveIndex: Int, atIndex: Int)
    func sonarView(sonarView: SonarView, textForWaveAtIndex waveIndex: Int) -> String?
}

如果 distanceForWaveAtIndex 返回 nil,则标签将被隐藏。更多信息请参阅示例项目。

外观

有3种颜色可以进行调整。

class public var lineColor: UIColor
class public var lineShadowColor: UIColor
class public var distanceTextColor: UIColor

贡献

如果您需要公开其他属性或您有改进它的想法,请提交问题或发送拉取请求,我会很乐意讨论。

需求

iOS 8+,

版本 2.x - Swift 2.2+

版本 3.x - Swift 3.0+

版本 4.x - Swift 4.2+

版本 5.x - Swift 5.0+

安装

Sonar可以通过CocoaPods获取。为了安装它,只需将以下行添加到您的Podfile中

pod "Sonar"

作者

Aleš Kocur, [email protected]

许可协议

Sonar在MIT许可下可用。更多信息请参阅LICENSE文件。