iOS 自定义UIView以实现自绘

释放双眼,带上耳机,听听看~!

有时候我们需要自绘uiview以实现自己的需求,比如根据坐标点绘制出连续的曲线(股票走势图),就需要自绘uiview了。

原理:继承uiview类(customView),并实现custom view的drawRect即可。

首先看一下效果图:

代码如下:

// .h

#import <UIKit/UIKit.h>
@interface CustomView :
UIView
@end

 

 

//.m

#import "CustomView.h"
@implementation CustomView

-(id)initWithFrame:(CGRect)frame{

    //重写initWithFrame时,不要忘了下面一句

    self = [superinitWithFrame:frame];

    if (self) {

        self.backgroundColor = [UIColorwhiteColor];

    }
    return
self;

}

 

//重写drawRect方法(不需要调用),绘制想要的图像

-(void)drawRect:(CGRect)rect{
    CGContextRef context =
UIGraphicsGetCurrentContext();//context:一块内存区域,将它看做当前view的画布就行了。
    NSDictionary *attribute = [NSDictionarydictionaryWithObjectsAndKeys:[UIFontsystemFontOfSize:
15.0f],
NSFontAttributeName, [UIColorredColor],
NSForegroundColorAttributeName, nil];

    [@"股市走势图"drawInRect:CGRectMake(100,200,80, 20)
withAttributes:attribute] ;//绘画标题

    //曲线

    CGContextMoveToPoint(context,10,400);

    CGContextAddLineToPoint(context,100,450);

    CGContextAddLineToPoint(context,150,400);

    CGContextAddLineToPoint(context,200,450);

    //CGContextStrokePath(context);

    //三角形

    CGContextMoveToPoint(context,20,100);

    CGContextAddLineToPoint(context,40,300);

    CGContextAddLineToPoint(context,200,200);

    CGContextClosePath(context);

    CGContextStrokePath(context);

    //CGContextFillPath(context);

    //矩形

    CGContextAddRect(context,CGRectMake(20,20,100, 50));

    [[UIColorcolorWithRed:1green:0blue:0alpha:1]
set];

    //CGContextStrokePath(context);//空心

    CGContextFillPath(context);//实心

     //圆

    CGContextAddArc(context,150, 150, 100,0, 2*M_PI,0);

    CGContextStrokePath(context);

}
@end

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

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

CustomView *view = [[CustomView alloc]  initWithFrame:[UIScreen mainScreen].bounds];

[self.view addSubview view];

 

 

人已赞赏
iOS文章

iOS 2d自定义绘图浅析

2020-2-15 14:22:23

iOS文章

iOS沙盒机制

2020-2-15 15:22:34

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索