IOS 绘制心电图
这两天公司做一个医疗的项目,其中一个需求是接受传感器的病人心跳数据,将之在UI上面绘制成心电图. 在网上看了很多demo,废话不多说直接切入.(漏洞百出,欢迎批评指正)
因为除了逻辑其实很简单,代码就没有放到githup上面。点击打开链接 这是demo的下载地址
一.Core Graphics
Core Graphics 是一个基于c的api编写的图形核心绘制引擎。提供比较底层的,轻量级的二维渲染和非常好的输出保真度
//搬运别人的 总结就是这样
//因为画的是心电图 所以 必须要有心跳的背景网格对不对 所以第一步 就是先画出背景的网格
第一种:创建图片类型的画布。调用UIGraphicsBeginImageContextWithOptions函数就可获得用来处理图片的图形上下文。
第二种:利用cocoa自动为你生成画布。当你子类化了一个UIView并实现了自己的drawRect:方法后,一旦drawRect:方法被调用,Cocoa就会为你创建一个图形上下文,
这上面2种都是自己弄的画布,没有引用当前图像所在的画布,如果自己不想创建画布,可以用当前的画布(类型是:CGContextRef)
具体看代码:
画图展示需要我们自定义一个UIView,重写初始化方法.
self.clearsContextBeforeDrawing = YES;//这个方法 是保证我们的改变挥着绘图能够生效
- (instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
self.clearsContextBeforeDrawing = YES;
}
return self;
}
在重写系统方法
- (void)drawRect:(CGRect)rect 这时候系统就知道 你要发挥你的绘画天赋了,并已经准好了
- (void)drawRect:(CGRect)rect {
[self drawCurve]; // 绘制心电图型
[self drawGrid]; //绘制心电图 背景网格
}
//因为画的是心电图 所以 必须要有心跳的背景网格对不对 所以第一步 就是先画出背景的网格
//绘制背景的网格
- (void)drawGrid{
CGContextRef context = UIGraphicsGetCurrentContext();//获取上下文 知道你要画图的地方 (就是画布)
CGFloat