gpt4 book ai didi

ios - 使用乘法混合模式覆盖 UIImageViews?

转载 作者:可可西里 更新时间:2023-11-01 03:08:36 26 4
gpt4 key购买 nike

我有 2 个显示在彼此之上的 UIImageView。其中之一可以使用手势识别器来回拖动。

有没有一种方法可以使用像 Multiply 这样的混合模式来渲染 ImageViews?这样当它们移动到每个顶部时,它们就会使用该混合模式进行渲染?

最佳答案

您必须重写父 View 上的 drawRect: 函数,以实现如下目的:

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

[image1.image drawInRect:image1.frame blendMode:kCGBlendModeMultiply alpha:1];
[image2.image drawInRect:image2.frame blendMode:kCGBlendModeMultiply alpha:1];
[super drawRect:rect];
}

它所做的是获取当前的 graphicsContext,并使用乘法混合模式将两个图像绘制到其中。

为了能够看到这一点,您需要将两个图像的 alpha 设置为 0,否则新绘制的内容将被遮挡。由于父 View 正在重绘它们,因此您会看到生成的倍增版本。

此外,无论何时更新图像的位置,您都需要在父 View 上调用 setNeedsDisplay,以强制它再次调用 drawRect。

我确信可能有更有效的方法来利用 Quartz 2D 来实现您想要的,但这可能是最简单的。

关于ios - 使用乘法混合模式覆盖 UIImageViews?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14609629/

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