测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可 | Apache 2 |
发布时间最新发布 | 2018年1月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 Ivan Schuetz 维护。
功能强大的可定制图表图例
Swift 3.0, iOS 8+
UICollectionView
子类使用自定义视图。简单
@IBOutlet weak var legendsView: ChartLegendsView!
legendsView.setLegends(
(text: "Chemicals", color: UIColor.orange),
(text: "Forestry", color: UIColor.green)
)
ChartLegends 目前支持以下类型
以给定颜色显示文本。快速入门部分中的示例产生此类图例。
在左侧显示文本和形状,具有给定颜色。这里也有一些预定义选项,例如圆形,指定半径,或矩形,指定宽度和高度。
例如,要使用左侧有小型彩色圆圈的图例
legendsView.setLegends(.circle(radius: 7), [
(text: "Chemicals", color: UIColor.orange),
(text: "Forestry", color: UIColor.green)
)]
如果您想显示不在预定义类型中的形状,您也可以提供路径。示例
let pathGenerator = {(size: CGSize) in
return UIBezierPath()
}
legendsView.setLegends(pathGenerator, [
(text: "Chemicals", color: UIColor.orange),
(text: "Forestry", color: UIColor.green)
)]
当然,我们想要扩展预定义类型以支持所有可能的常规路径。如果您认为您的路径对公众有直接兴趣,请不要犹豫提出拉取请求!
如果您需要更多的自定义,您也可以使用自定义单元。示例
legendsView.configure(cellType: MyCustomCell.self) {cell, legend, indexPath in
cell.label.text = legend.text
// other custom configuration
}
这是一个类型安全且简洁的写法 - 我们不需要转换或代表来配置单元。
要实现自定义单元,您只需扩展 UICollectionViewCell
并符合 ChartLegendCell
以添加一些额外的功能,这些功能 ChartLegendsView
需要与应用单元交互。
在此,您仍然可以自由提交带有您单元格的拉取请求,如果您认为它们可以公用。
您可以直接在界面构建器中配置 ChartLegendsView
的布局和一些其他设置。
flowLeft
:左对齐流动布局。这应该是最常见的水平图例布局。
columns
:列布局 - 您可以在“列字段”中指定列数。
flow
:默认流动集合视图布局,将按照顺序排列单元格以占用可用空间。
注意,当布局类型不是 columns
时,忽略“列”字段。
下载此存储库并运行示例目标!
除了添加新形状和单元格外,还一定可以完成几个设置和改进。还可以添加动画!
Ivan Schütz
SwiftCharts版权所有 © 2017 Ivan Schütz,并以附带的Apache 2.0 许可证作为开源发布。
软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者不对任何主张、损害或其他责任承担责任,无论是基于合同、侵权或其他方式,无论是因软件或其使用或以其他方式而产生、出现或与之相关。