我正在制作一款iPhone应用程序,其中有两个ImageView,当你触摸顶部的那个时,无论你在哪里点击,底部都会显示。
基本上我想做的是从图像中剪切椭圆/圆角。为此,我想要剪切图像,或将矩形中的alpha像素更改为零。我是Quartz 2D Programming的新手,所以我不知道该怎么做。
假设我有:
UIImageView *topImage;
UIImageView *bottomImage;
如何从这些图像中删除CGRect / Ellipse / RoundedRect。 这有点像那些你必须要刮掉的彩票,以揭示你是否赢了。
答案 0 :(得分:1)
我通常会尝试从路径(这里包含一个圆角矩形)制作一个蒙版,然后用它来掩盖图像,如apple docs中所示。这样做的好处之一是,对于命中测试,你需要做的只是CGPathContainsPoint与被触摸的点(因为它将测试它是否在图像的可见区域)。
答案 1 :(得分:0)
我试过这段代码:
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect frame = CGRectMake(100, 100, 100, 100);
CGPathRef roundedRectPath = [self newPathForRoundedRect:frame radius:5];
CGContextAddPath(ctx, roundedRectPath);
CGContextClip (ctx);
CGPathRelease(roundedRectPath);
(与你发送的圆角矩形路径功能一起) 这是一个白色的视图,在视图下面有一个灰色的窗口,所以我认为这只会在CGRect框架中显示灰色而不是白色但是它没有做任何事情......