测试测试过的 | ✗ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最近发布 | 2017年6月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 Marek Lisik 维护。
MRLCircleChart
是一个用 Swift 编写的简单的饼图/圆形图表 UI 组件。旨在为您处理大部分工作(只需传递数据源并配置视图),以牺牲可定制性为代价。
Chart
的Data Source
由一个Segment
的数组和用作Segment
角度值参考的maxValue
属性组成。您可以将源值轻松映射到[Segment]
,然后初始化一个遵守MRLCircleChart.DataSource
协议的数据源,并将其传递给Chart
struct DataSource: MRLCircleChart.DataSource {
// protocol conformance
}
let segments = [90, 80, 60].map {
Segment(value: $0, description: "\($0)")
}
chart.dataSource = DataSource(items: segments, maxValue: 250)
您需要的所有自定义都可以通过 InterfaceBuilder、以下IBDesignable
属性来完成。
如果您没有使用 IB 来布局Chart
,这些属性也同样可用。
@IBInspectable public var lineWidth: CGFloat = 25
@IBInspectable public var padding: CGFloat = 0
@IBInspectable public var chartBackgroundColor: UIColor = UIColor(white: 0.7, alpha: 0.26)
@IBInspectable public var beginColor: UIColor? = UIColor.beginColor()
@IBInspectable public var endColor: UIColor? = UIColor.endColor()
有关完整文档,请参阅Cocoadocs。
除了自定义之外,主要的公开 API 围绕修改和更新可用数据。
public mutating func remove(index: Int) -> MRLCircleChart.Segment?
public mutating func insert(item: MRLCircleChart.Segment, index: Int)
public mutating func append(item: MRLCircleChart.Segment)
public mutating func empty()
final public func reloadData(animated animated: Bool = true, completion: () -> () = {})
public func empty(animated animated: Bool = true, color: UIColor? = nil)
public func select(index selectIndex: Int)
public func deselect(index index: Int)
有两个回调可用于用户交互事件:当选择一个部分时以及取消选择时。
chart.selectHandler = {
index in print("selected \(index)")
}
chart.deselectHandler = {
index in print("deselected \(index)")
}
要运行示例项目,请克隆仓库,首先从 Example 目录运行pod install
,或者运行pod try MRLCircleChart
以使用临时克隆进行检查。
MRLCircleChart 可以通过 CocoaPods 获取。要安装它,只需将以下行添加到 Podfile 中即可
pod "MRLCircleChart"
如果您想帮忙,请查看 waffle.io 上的公开问题。该项目目前还没有路线图,但欢迎所有类型的拉取请求(无论是想要清理、修复还是添加某些内容),也欢迎功能请求。
mlisik,[email protected]
MRLCircleChart 在 MIT 许可证下可用。更多信息请参阅 LICENSE 文件。