• 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;
    }


    以下为效果图

  • 相关阅读:
    Linux (x86) Exploit 开发系列教程之三(Off-By-One 漏洞 (基于栈))
    Linux (x86) Exploit 开发系列教程之二(整数溢出)
    Linux (x86) Exploit 开发系列教程之一(典型的基于堆栈的缓冲区溢出)
    Linux (x86) Exploit 开发系列教程之四(使用return-to-libc绕过NX bit)
    xss level11
    f.select
    jquery.backstretch
    linux目录或文件权限
    pradino 命令
    Padrino 博客开发示例
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5174654.html
Copyright © 2020-2023  润新知