2

我想在 a 中呈现图像UIView,因为我必须自定义(void)drawRect:(CGRect)rect. 我必须清除用户“摩擦”屏幕的视图的 alpha,因此该视图后面的子视图将变得可见。
如果我使用纯色效果很好,但是当我尝试绘制图像并清除用户触摸屏幕的视图时,不会绘制图像。你能帮我吗,我应该如何UIImage绘制 , 在背景中绘制并在特定rect中变得透明,好吗?

这是我的代码,它适用于纯色(就像现在一样):

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSaveGState(context);

    CGContextSetFillColorWithColor( context, [UIColor greenColor].CGColor );
    CGContextFillRect( context, rect );

    CGContextSetFillColorWithColor( context, [UIColor clearColor].CGColor );
    CGContextSetBlendMode(context, kCGBlendModeClear);
    CGContextFillRect(context, CGRectMake(lastTouch.x, lastTouch.y, 30, 30));

    CGContextRestoreGState(context);
}
4

2 回答 2

1

为此目的,github 上有一个很好的控件。查看:

https://github.com/akopanev/iOS-Scratch-n-See

我已经将它用作“scratch game”应用程序的起点。代表还接收到多少屏幕/图像已经被清除(即“被刮掉”)的信息。

祝你好运!

于 2013-04-15T13:48:06.833 回答
0

我不确定你的问题......但如果问题是当用户触摸屏幕时没有调用drawRect......试试这个:

放一个

[self setNeedsDisplay];

在您的触摸事件中... UIGestureRecognizer 或覆盖 UITouches 方法

于 2013-04-15T13:41:53.297 回答