BEMSimpleLineGraph 让您轻松创建和自定义 iOS 中的折线图。
BEMSimpleLineGraph 是一个图表库,它使创建美丽的 iOS 折线图变得简单。它易于设置和使用,适用于任何 iOS 项目。它致力于高度可自定义和交互式的折线图。此外,它轻量级,可以在几分钟(甚至几秒钟)内集成。
BEMSimpleLineGraph 的实现、数据源和代理都是基于 UITableView 和 UICollectionView 构建的。如果您熟悉使用 UITableView、UITableViewController 或 UICollectionView,使用 BEMSimpleLineGraph 应该会非常简单!
项目的完整文档可以在其 wiki 上找到。
了解有关 BEMSimpleLineGraph 项目需求、许可和贡献的更多信息。
请在 wiki 的完整文章中查看 此处。
需要 Xcode 6 来在 iOS 项目中使用。最低部署目标需要 iOS 7.0。
当前构建目标 | 最早支持的构建目标 | 最早兼容的构建目标 |
---|---|---|
iOS 8.0 | iOS 7.0 | iOS 6.1 |
Xcode 6.3 | Xcode 6.1.1 | Xcode 6.0 |
LLVM 6.1 | LLVM 6.1 | LLVM 5.0 |
需求说明
支持 表示库已在该版本上测试过。 兼容 表示库应该在此 OS 版本上运行(即它不依赖于任何不可用的 SDK 功能),但不再测试兼容性,可能需要调整或修复错误才能正常运行。
请查看许可证。您可以自由地对代码进行修改并且将这个项目用于任何个人或商业项目。不需要署名,但是感谢您的认可。一些简短的感谢或类似的话语将会非常受欢迎。如果您的应用中使用了BEMSimpleLineGraph,请告诉我们。
如果您需要帮助或者想要讨论该项目,请加入Gitter。
当您使用BEMSimpleLineGraph标签时,可以在StackOverflow上提问,并得到大量社区或程序员的帮助。
本项目中包含的iOS示例应用展示了如何正确配置和使用BEMSimpleLineGraph。您可以参考示例应用来了解如何使用和设置BEMSimpleLineGraph。
数十款生产级iOS应用在App Store中使用BEMSimpleLineGraph。您可以在维基百科上查看使用本项目的已知App Store应用的完整列表,阅读它们的描述,获取链接,价格,特色状态以及图表使用截图。
将您的BEMSimpleLineGraph应用添加到维基页面上,有机会在Readme或维基百科中被展示。我们迫不及待想看到您用BEMSimpleLineGraph创作出的作品。
请在此处查看维基百科上的完整文章入门。
BEMSimpleLineGraph可以在几分钟内(如果操作非常熟练,甚至可能是几秒)添加到任何大小(无论大小)的项目中。完全支持Cocoapods,以及所有最新技术(例如:ARC、Storyboard、Interface Builder Attributes、Modules等)。
安装BEMSimpleLineGraph最简单的方式是使用CocoaPods。要这样做,只需将以下行添加到您的Podfile
:
pod 'BEMSimpleLineGraph'
安装BEMSimpleLineGraph的另一种方式是将Classes文件夹拖放到您的Xcode项目。这样做时,请勾选“复制到目标组的文件夹中”框。
要在Swift项目中使用BEMSimpleLineGraph,请在bridging header中添加以下内容:
#import "BEMSimpleLineGraphView.h"
在项目中设置BEMSimpleLineGraph非常简单。如果您熟悉UITableView,那么对BEMSimpleLineGraph来说应该很容易。按照以下步骤操作,可以使一切正常运行。
在您的视图控制器头文件中导入"BEMSimpleLineGraphView.h"
。
#import "BEMSimpleLineGraphView.h"
在同一个视图控制器中实现BEMSimpleLineGraphDelegate
和BEMSimpleLineGraphDataSource
。
@interface YourViewController : UIViewController <BEMSimpleLineGraphDataSource, BEMSimpleLineGraphDelegate>
BEMSimpleLineGraphView可以通过两种方式初始化。您可以直接将其添加到界面中(Storyboard文件),或者通过代码方式。这两种方式提供相同的初始化,只是实现方式不同。根据您的应用或项目选择合适的方法。
界面初始化
1 - 在您的UIViewController中添加一个UIView。
2 - 将UIView的类类型更改为BEMSimpleLineGraphView
。
3 - 使用一个IBOutlet
将视图链接到代码。您可以将属性设置为weak
和nonatomic
。
4 - 在界面中选择BEMSimpleLineGraphView
。然后将数据源RYPTO_TIMEdelegate属性链接到您的ViewController。
5 - 选择 BEMSimpleLineGraphView
并打开属性检查器。大部分线图的个性化属性都可以轻松地从属性检查器中进行设置。样本应用展示了这一功能。请注意,图形数据不会在界面构建器中加载。
代码初始化
只需将以下代码添加到您的实现中(通常是在 viewDidLoad
方法中)。
BEMSimpleLineGraphView *myGraph = [[BEMSimpleLineGraphView alloc] initWithFrame:CGRectMake(0, 0, 320, 200)];
myGraph.dataSource = self;
myGraph.delegate = self;
[self.view addSubview:myGraph];
实现两个必需的数据源方法:numberOfPointsInLineGraph:
和 lineGraph:valueForPointAtIndex:
。有关更多信息,请参阅以下文档。
以下是对 BEMSimpleLineGraph 必要部分的文档说明。完整的文档请参阅 wiki。文档直接在 Xcode 中可用(只需按住 Option 点击任何方法即可获取快速帮助)。
图中的点数
返回线图中点的数量。线图从其数据源获取此方法返回的值并将其缓存。
- (NSInteger)numberOfPointsInLineGraph:(BEMSimpleLineGraphView *)graph {
return X; // Number of points in the graph.
}
在索引处的点的值
指明在给定索引处每个点在 Y 轴上的位置。此方法针对在 numberOfPointsInLineGraph:
方法中指定的每个点进行调用。参数 index
是点在 X 轴从左到右的位置。
- (CGFloat)lineGraph:(BEMSimpleLineGraphView *)graph valueForPointAtIndex:(NSInteger)index {
return …; // The value of the point on the Y-Axis for the index.
}
类似于 UITableView 的 reloadData
方法,BEMSimpleLineGraph 有一个 reloadGraph
方法。调用此方法将重新加载数据,包括用于构建图形的点、轴、索引数组、颜色、alpha 等。调用此方法将导致线图对其自身的 layoutSubviews
进行调用。线图还将再次调用其所有数据源和委托方法(以获取更新的数据)。
- (void)anyMethodInYourOwnController {
// Change graph properties
// Update data source / arrays
// Reload the graph
[self.myGraph reloadGraph];
}
BEMSimpleLineGraph 可以通过两种不同的方式响应用户触摸图形:弹出报告 和 触摸报告。
在此示例中,同时激活了弹出报告和触摸报告。
BEMSimpleLineGraph 可以使用曲线而不是直接用直线连接点来进行绘制。
要这样做,将属性 enableBezierCurve
设置为 YES。
self.myGraph.enableBezierCurve = YES;
BEMSimpleLineGraphs 可以通过使用各种属性进行个性化设置。许多属性让您控制图形的动画、颜色和 alpha 值。许多属性可以从界面构建器中设置,而其他属性则必须在代码中设置。
要为 BEMSimpleLineGraph 做贡献,请参阅 CONTRIBUTING.md
文件,该文件详细说明了您如何为此项目做出贡献。