标签:
有时候我们需要自绘uiview以实现自己的需求,比如根据坐标点绘制出连续的曲线(股票走势图),就需要自绘uiview了。
原理:继承uiview类(customView),并实现customview的drawRect即可。
首先看一下鲜果图:
代码如下:
// .h
#import <UIKit/UIKit.h>
@interface CustomView : UIView
@end
//.m
#import "CustomView.h"
@implementation CustomView
-(id)initWithFrame:(CGRect)frame{
//重写initWithFrame时,不要忘了下面一句
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor whiteColor];
}
return self;
}
//重写drawRect方法(不需要调用),绘制想要的图像
-(void)drawRect:(CGRect)rect{
//获取图像上下文,注意该api只能在drawRect使用
CGContextRef context = UIGraphicsGetCurrentContext();//context:一块内存绘画区域表示,将它看做当前view的画布就行了。
NSDictionary *attribute = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize: 15.0f], NSFontAttributeName, [UIColor redColor], NSForegroundColorAttributeName, nil];
[@"股市走势图" drawInRect:CGRectMake(100, 200, 80, 20) withAttributes:attribute] ;//绘画标题
//起始路径
CGContextBeginPath(context);
//起始点设置点
CGContextMoveToPoint(context, 10, 400);
//下一个坐标点
CGContextAddLineToPoint(context, 100, 450);
//再下一个
CGContextAddLineToPoint(context, 150, 400);
//再下一个
CGContextAddLineToPoint(context, 200, 450);
//连接坐标点
CGContextStrokePath(context);
}
@end
viewDidLoad下添加西;下面一行代码就可以了!
self.view = [[CustomView alloc] initWithFrame:[UIScreen mainScreen].bounds];
标签:
原文地址:http://blog.csdn.net/gx_wqm/article/details/46406493