gpt4 book ai didi

ios - 如何使用 Quartz2d 在 iPhone 中绘制图片

转载 作者:行者123 更新时间:2023-11-28 23:17:41 25 4
gpt4 key购买 nike

我现在正在学习 Quartz,想做一个这样的演示:当你的手指在 iPhone 屏幕上移动时,它会以红色显示轨迹。代码如下:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
_firstPoint = [touch locationInView:self];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
_endPoint = [touch locationInView:self];
[self setNeedsDisplay];
_firstPoint = _endPoint;
}

然后

- (void)drawRect:(CGRect)rect {

// Drawing code.
CGContextRef _context = UIGraphicsGetCurrentContext();

CGContextSetRGBStrokeColor(_context, 1, 0, 0, 1);
CGContextMoveToPoint(_context, _firstPoint.x, _firstPoint.y);
CGContextAddLineToPoint(_context, _endPoint.x, _endPoint.y);

CGContextStrokePath(_context);
}

这里,_firstPoint和_endPoint是记录位置的CGPoint。但是,它不显示轨道。我不知道是什么问题。请提供任何提示。

最后想咨询一下做这样的App对不对。

谢谢!

最佳答案

关于您关于构成线的点集合存储在哪里的观点,它没有存储在这个例子中。

已编辑

是的,为了存储它们,我只需添加到 NSMutableArray。

有点像

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (!_points) _points = [[NSMutableArray array] retain];
UITouch *touch = [touches anyObject];
[_points addObject:[NSValue valueWithCGPoint:[touch locationInView:self]];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
[_points addObject:[NSValue valueWithCGPoint:[touch locationInView:self]];
[self setNeedsDisplay];
}

setNeedsDisplay 将调用 drawRect,这是您使用点和绘制方法的地方。

关于ios - 如何使用 Quartz2d 在 iPhone 中绘制图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5306839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com