iOS 画布:画线条

来源:互联网 发布:数据库crow s foot图 编辑:程序博客网 时间:2024/05/19 00:36

方法一:

//方法一-(void)DrawLineInImageView{    UIImageView *imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, 320, 100)];    [self.view addSubview:imageView1];    [imageView1 setBackgroundColor:[[UIColor grayColor] colorWithAlphaComponent:0.2]];        UIGraphicsBeginImageContext(imageView1.frame.size);   //开始画线    float lengths[] = {10,5};    CGContextRef line = UIGraphicsGetCurrentContext();    CGContextSetStrokeColorWithColor(line, [UIColor redColor].CGColor);        CGContextSetLineDash(line, 0, lengths, 2);  //画虚线    CGContextMoveToPoint(line, 10.0, 20.0);    //开始画线  起点    //CGContextMoveToPoint:原点移动到这个点   CGContextAddLineToPoint 上个点移动到这个点    CGContextAddLineToPoint(line, 310.0, 20.0); // 上个点连线到下一个点    CGContextAddLineToPoint(line, 310.0, 80.0); //上个点连线到下一个点    CGContextAddLineToPoint(line, 10.0, 80.0); //上个点连线到下一个点    CGContextAddLineToPoint(line, 10.0, 20.0); // 上个点连线到下一个点    CGContextStrokePath(line);        imageView1.image = UIGraphicsGetImageFromCurrentImageContext();}

方法二:

创建一个UIView 做画布

.h

////  draw.h//  ImageEditViewDemo////  Created by linpeng on 14-3-2.//  Copyright (c) 2014年 linpeng. All rights reserved.//#import <UIKit/UIKit.h>@interface draw : UIView- (id)initWithFrame:(CGRect)frame;@end
.m

////  draw.m//  ImageEditViewDemo////  Created by linpeng on 14-3-2.//  Copyright (c) 2014年 linpeng. All rights reserved.//#import "draw.h"@implementation draw- (id)initWithFrame:(CGRect)frame{    self = [super initWithFrame:frame];    if (self) {        [self drawRect:frame];    }    return self;}- (void)drawRect:(CGRect)rect{        CGContextRef context =UIGraphicsGetCurrentContext();    CGContextBeginPath(context);    CGContextSetLineWidth(context, 2.0);    CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);    float lengths[] = {10,10};//lengths的值{10,10}表示先绘制10个点,再跳过10个点,    CGContextSetLineDash(context, 0, lengths,2);        //CGContextMoveToPoint:原点移动到这个点   CGContextAddLineToPoint 上个点移动到这个点    CGContextMoveToPoint(context, 10.0, 20.0);    CGContextAddLineToPoint(context, 200.0,20.0);    CGContextAddLineToPoint(context, 200.0, 80.0);    CGContextAddLineToPoint(context, 10.0,20.0);    CGContextStrokePath(context);    CGContextClosePath(context);}/*// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect{    // Drawing code}*/@end

用法:

////  ViewController.m//  ImageEditViewDemo////  Created by linpeng on 14-3-1.//  Copyright (c) 2014年 linpeng. All rights reserved.//#import "ViewController.h"#import "draw.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];    [self DrawLineInImageView];    //[self DrawLineInView];       }- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{    }//方法一-(void)DrawLineInImageView{    UIImageView *imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, 320, 100)];    [self.view addSubview:imageView1];    [imageView1 setBackgroundColor:[[UIColor grayColor] colorWithAlphaComponent:0.2]];        UIGraphicsBeginImageContext(imageView1.frame.size);   //开始画线    float lengths[] = {10,5};    CGContextRef line = UIGraphicsGetCurrentContext();    CGContextSetStrokeColorWithColor(line, [UIColor redColor].CGColor);        CGContextSetLineDash(line, 0, lengths, 2);  //画虚线    CGContextMoveToPoint(line, 10.0, 20.0);    //开始画线  起点    //CGContextMoveToPoint:原点移动到这个点   CGContextAddLineToPoint 上个点移动到这个点    CGContextAddLineToPoint(line, 310.0, 20.0); // 上个点连线到下一个点    CGContextAddLineToPoint(line, 310.0, 80.0); //上个点连线到下一个点    CGContextAddLineToPoint(line, 10.0, 80.0); //上个点连线到下一个点    CGContextAddLineToPoint(line, 10.0, 20.0); // 上个点连线到下一个点    CGContextStrokePath(line);        imageView1.image = UIGraphicsGetImageFromCurrentImageContext();}//方法二-(void)DrawLineInView{    draw *v = [[draw alloc] initWithFrame:CGRectMake(10, 40, 300, 400)];    [self.view addSubview:v];    }@end



0 0