美文网首页ios
iOS通过按压的力度来控制线条的粗细

iOS通过按压的力度来控制线条的粗细

作者: nenhall | 来源:发表于2018-06-16 16:21 被阅读94次

iOS通过按压的力度来控制线条的粗细

@interface ViewController ()
{
    CGPoint touchPoint;
    UIImageView *canDraw;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    canDraw = [[UIImageView alloc] initWithFrame:self.view.bounds];
    canDraw.backgroundColor = [UIColor lightGrayColor];
    [self.view addSubview:canDraw];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    touchPoint = [touch locationInView:canDraw];
}

- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint currentPoint = [touch locationInView:canDraw];

    UIGraphicsBeginImageContext(canDraw.frame.size);
    [canDraw.image drawInRect:CGRectMake(0.0, 0.0, canDraw.frame.size.width, canDraw.frame.size.height)];

    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);

    float lineWidthc = 10.0;
    if ([touch respondsToSelector:@selector(force)]) {
        NSLog(@"force:%f", touch.force);
        lineWidthc = lineWidthc * touch.force;
    }
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), lineWidthc);

    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0);
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), touchPoint.x, touchPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    canDraw.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    touchPoint = currentPoint;

}

相关文章

  • iOS通过按压的力度来控制线条的粗细

    iOS通过按压的力度来控制线条的粗细

  • iPad仿四大名捕

    做为新手在iPad作画好难,比手绘还要难,手绘你可以控制线条粗细,颜色叠加的力度和色彩,在iPad上面,要控制好这...

  • “万岁枯藤”最是美

    书法是造型艺术,而线条的形状,是书法造型的基础或说是基本元素,通过线条的粗细、长短等来表现这个字的外在形状。 草书...

  • 扒一扒那些支持压力触控的APP---神转折大赛

    二话不说,首先我们来瞅瞅啥叫压力触控。 压力控制简而言之就是在屏幕四角配置力度传感器,使得机器可以对按压力度进行感...

  • iOS 3D touch开发 Force Properties-

    iOS 3D touch开发(三) Force Properties-按压力度 3D touch介绍 3D tou...

  • Android按键事件及手势事件(二)

    一、根据触摸行为辨别手势动作 常见手势的行为特征及其检测办法,内容包括如何通过按压时长与按压力度区分点击和长按手势...

  • 补*2018年第十二画

    依然是补之前欠下的。 发烧的缘故,头发粗细没有控制好,就画成线条式的。 头发好乱,腰不对劲,胳膊粗细也不对。还好,...

  • 忘记这是第几天打卡了

    练习绘画的第n天,发现了几个问题,线条的把握,比例的控制,下笔线条的粗细等等,最主要的还是要坚持每天练习,不然手感...

  • 临摹20220502

    线条粗细,先构图再细节

  • 画画,需要心静,也可静心

    今天练习缠绕画,圆里练习各种线条。立体的围墙画的挺立体,一块一块书立在那里。画横向的围墙,就线条粗细控制不好...

网友评论

    本文标题:iOS通过按压的力度来控制线条的粗细

    本文链接:https://www.haomeiwen.com/subject/ftybeftx.html