码迷,mamicode.com
首页 > 其他好文 > 详细

自定义UIView以实现自绘

时间:2015-06-08 09:49:04      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

有时候我们需要自绘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


然后在需要用到该view的view controller的

viewDidLoad下添加西;下面一行代码就可以了!

self.view = [[CustomView allocinitWithFrame:[UIScreen mainScreen].bounds];


自定义UIView以实现自绘

标签:

原文地址:http://blog.csdn.net/gx_wqm/article/details/46406493

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!