– (void)drawRect:(CGRect)rect {
    //初始化画板
    CGContextRef context = UIGraphicsGetCurrentContext();
    //画一个矩形,长宽相等,直径等于view的宽
    CGContextAddRect(context, CGRectMake(0, 0, rect.size.width, rect.size.width));
    //设置边框的宽度
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
    //红色填充框内
    [[UIColorredColor] setFill];
    //蓝色填充边框颜色
    [[UIColorblueColor] setStroke];
    //绘制路径path
    CGContextDrawPath(context,kCGPathFillStroke);
    
    //****利用path进行绘制三角形****//
    //启动绘制
    CGContextBeginPath(context);
    //设置起点
    CGContextMoveToPoint(context,rect.size.width / 2,0);
    //第二个
    CGContextAddLineToPoint(context,0, rect.size.height);
    //第三个
    CGContextAddLineToPoint(context,rect.size.width, rect.size.height);
     //路径结束标志,不写默认封闭
    CGContextClosePath(context);
    [[UIColorpurpleColor] setFill];
    //只填充线内图,不填充边框
    CGContextDrawPath(context,kCGPathFill);
    
    //绘制一个园
    CGContextAddEllipseInRect(context, CGRectMake(20, 20, rect.size.width – 40,rect.size.height – 40));
    //通过这个圆,将view掏空
    //CGContextSetBlendMode(context,kCGBlendModeClear);
    CGContextDrawPath(context,kCGPathFillStroke);
    
    
    //画一条线
    CGPoint LinePoints[2];
    LinePoints[0] = CGPointMake(rect.size.width / 2, 0);
    LinePoints[1] = CGPointMake(rect.size.width / 2, rect.size.height);
    //参数,两个线的坐标,2属于两点
    CGContextAddLines(context, LinePoints, 2);
    //设置线颜色
    [[UIColororangeColor]setStroke];
    //设置线宽
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 1.0);
    CGContextDrawPath(context,kCGPathStroke);
    // Drawing code
}
//drawRect中写字:
self.dic = [[NSDictionary alloc]initWithObjectsAndKeys:
             [UIFont systemFontOfSize:kScaleForLength(250)],NSFontAttributeName,
             [UIColor whiteColor],NSForegroundColorAttributeName,
             nil]
- (void)drawRect:(CGRect)rect {
    self.text = @"drawrect";
    if (self.text.length!=0) {
        
        [self.text drawAtPoint:CGPointMake(kScaleForLength(30), -kScaleForLength(50)) withAttributes:self.dic];
 
    }
    // Drawing code
}
二维码mask层DEMO:

//画四条折现图,然后将背景设置为黑色,透明度为0.2,然后画一个正方形盖上边,最后将正方形掏空。
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
    //background
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextAddRect(context, CGRectMake(0, 0, rect.size.width, rect.size.height - 0));
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 0.0);
    [[[UIColor blackColor]colorWithAlphaComponent:0.3] setFill];
    CGContextDrawPath(context,kCGPathFill);
    //
    CGFloat smallRectY = (rect.size.height - rect.size.width / 3 * 2) / 2;
    //line by eight - first
    //config
    [CWMainColor setStroke];
    CGContextSetLineWidth(context, 4.0);
    CGFloat lineLength = 40;
    CGPoint LinePoints[3];
    LinePoints[0] = CGPointMake(rect.size.width / 3 / 2, smallRectY + lineLength);
    LinePoints[1] = CGPointMake(rect.size.width / 3 / 2, smallRectY);
    LinePoints[2] = CGPointMake(rect.size.width / 3 / 2 + lineLength, smallRectY);
    CGContextAddLines(context, LinePoints, 3);
    //second
    CGFloat horSpace = rect.size.width / 3 / 2;
    CGPoint LinePoints_second[3];
    LinePoints_second[0] = CGPointMake(rect.size.width - horSpace - lineLength, smallRectY);
    LinePoints_second[1] = CGPointMake(rect.size.width - horSpace, smallRectY);
    LinePoints_second[2] = CGPointMake(rect.size.width - horSpace, smallRectY + lineLength);
    CGContextAddLines(context, LinePoints_second, 3);
    //third
    CGFloat smallReactMaxY = smallRectY + rect.size.width / 3 * 2;
    CGPoint LinePoints_third[3];
    LinePoints_third[0] = CGPointMake(horSpace + lineLength, smallReactMaxY);
    LinePoints_third[1] = CGPointMake(horSpace, smallReactMaxY);
    LinePoints_third[2] = CGPointMake(horSpace, smallReactMaxY - lineLength);
    CGContextAddLines(context, LinePoints_third, 3);
    //four
    CGPoint LinePoints_four[3];
    LinePoints_four[0] = CGPointMake(rect.size.width - horSpace - lineLength, smallReactMaxY);
    LinePoints_four[1] = CGPointMake(rect.size.width - horSpace, smallReactMaxY);
    LinePoints_four[2] = CGPointMake(rect.size.width - horSpace, smallReactMaxY - lineLength);
    CGContextAddLines(context, LinePoints_four, 3);
    //
    CGContextDrawPath(context,kCGPathStroke);
    //QRContent view
    CGContextAddRect(context, CGRectMake(rect.size.width / 3 / 2, smallRectY, rect.size.width / 3 * 2, rect.size.width / 3 * 2));
    CGContextSetBlendMode(context,kCGBlendModeClear);
    CGContextDrawPath(context,kCGPathFill);
}
	
