0

首先我想说我是objective-c的新手。

直到知道我已经构建了一个仅在一个图像上绘制的应用程序(这是具有 3 种颜色的 .png 图像:红绿蓝)。应用程序在整个图像中绘制线条。

我想要的是只用一种颜色(例如:红色)画线,即使触摸(鼠标)上升到其他颜色。(......正如我在互联网上看到的,应该使用洪水填充算法来完成)

你能给我一些关于如何做到这一点的想法吗?

我现在使用的代码:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
mouseSwiped = YES;

UITouch *touch = [touches anyObject];
currentPoint = [touch locationInView:self.view];

UIGraphicsBeginImageContext(CGSizeMake(320, 568));
[drawImage.image drawInRect:CGRectMake(0, 0, 320, 568)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0, 2, 0, 2);
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());


[drawImage setFrame:CGRectMake(0, 0, 320, 568)];
drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
lastPoint = currentPoint;

[self.view addSubview:drawImage];
}

提前谢谢。

4

1 回答 1

0

您可以创建派生自UIView并覆盖 message的自定义类drawRect:。然后把你的抽奖代码放到drawRect:. 将此自定义类添加为您的UIImageView.

#import <QuartzCore/QuartzCore.h>
@interface YourView : UIView {
    ...
}


in .m file
- (void)drawRect:(CGRect)rect{
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //your drawings
}
于 2012-11-08T04:37:18.597 回答