zoukankan      html  css  js  c++  java
  • ios创建画笔的样例(双笔画效果)

    定义一个UIView:主要是在这个View里面加一个UIImageView,绘图都在这个UIImageView里面进行

    @property(nonatomic) CGPoint prePoint;  //手指在进入move事件之前的那个点
    @property(nonatomic) CGPoint oppsitePoint;  //手指在进入move事件之前的那个点
    @property(nonatomic, retain) UIImageView* drawImage;
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
            self.drawImage = [[UIImageView alloc] initWithImage:nil];
            self.drawImage.frame = self.frame;
            [self addSubview:_drawImage];
            
        }
        return self;
    }

    然后处理手指的事件

    #pragma mark - deal touch
    -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
        NSLog(@"touchesBegan");
        //以下两句知道手指在屏幕上的点的信息
        UITouch* touch = [touches anyObject];
        CGPoint point = [touch locationInView:self];
        
        if (touch) {
            self.prePoint = point;
            _oppsitePoint = point;
            _oppsitePoint.x = 320.0f - point.x;
        }
    }
    
    -(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
         NSLog(@"touchesMoved");
        UITouch* touch = [touches anyObject];
        if (touch) {
            CGPoint point = [touch locationInView:self];
            UIGraphicsBeginImageContext(self.frame.size);
            [_drawImage.image drawInRect:CGRectMake(0, 0, _drawImage.frame.size.width, _drawImage.frame
                                                    .size.height)];
            CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
            CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 2.0f);
            CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(),0.314, 0.486, 0.859, 1.0);
            CGContextBeginPath(UIGraphicsGetCurrentContext());
            CGContextMoveToPoint(UIGraphicsGetCurrentContext(), _prePoint.x, _prePoint.y);
             CGContextAddQuadCurveToPoint(UIGraphicsGetCurrentContext(), _prePoint.x, _prePoint.y, point.x, point.y);
            
            CGContextMoveToPoint(UIGraphicsGetCurrentContext(), _oppsitePoint.x, _oppsitePoint.y);
            CGContextAddQuadCurveToPoint(UIGraphicsGetCurrentContext(), _oppsitePoint.x, _oppsitePoint.y, 320.0f - point.x, point.y);
            
           // CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), point.x, point.y);
            CGContextStrokePath(UIGraphicsGetCurrentContext());
            _drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
            UIGraphicsEndImageContext();
            
            _prePoint = point;
            _oppsitePoint = point;
            _oppsitePoint.x = 320.0f - point.x;
            
            
        }
        
    }
    
    
    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
        NSLog(@"touchesEnded");
        
        //这段的作用是假设在屏幕上点击能够画出点
        UIGraphicsBeginImageContext(self.frame.size);
        [_drawImage.image drawInRect:CGRectMake(0, 0, _drawImage.frame.size.width, _drawImage.frame
                                                .size.height)];
        CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
        CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 3.0f);
        CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(),0.314, 0.486, 0.859, 1.0);
        CGContextBeginPath(UIGraphicsGetCurrentContext());
        CGContextMoveToPoint(UIGraphicsGetCurrentContext(), _prePoint.x, _prePoint.y);
        CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), _prePoint.x, _prePoint.y);
        CGContextStrokePath(UIGraphicsGetCurrentContext());
        _drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    
        self.isTouch = NO;
    }


    以下为效果图

  • 相关阅读:
    魔幻的曲率--已知曲率画图形
    关于填报《国家自然科学基金资助项目结题报告》的补充说明
    关于填报《国家自然科学基金资助项目结题报告》的说明
    浙江大学2015年数学分析考研试题
    Slony-I中对storelisten出错的处理
    PostgreSQL没有redo log multiplexing
    Pgpool烂泥扶不上墙
    集群系统与事务处理需要注意的一点
    Slony-I 文摘
    什么样的日志才是好日志
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5174654.html
Copyright © 2011-2022 走看看