Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在两个UIView之间应用混合模式的最简单/最快方法_Iphone_Uiview_Uiimageview - Fatal编程技术网

Iphone 在两个UIView之间应用混合模式的最简单/最快方法

Iphone 在两个UIView之间应用混合模式的最简单/最快方法,iphone,uiview,uiimageview,Iphone,Uiview,Uiimageview,我正在尝试快速反转现有UIView的颜色(变成负片,如照片负片)。或者选择颜色并降低饱和度。我认为比操作位图更容易的是使用另一个全白色(或阴影)的UIView,并使用blendmodes来实现我的目标 我看不到一种方法来指导如何在另一个UIView上绘制UIView。即使我将UIView子类化,我也看不到一种更简单的方法来使用blend进行drawrect。看起来我必须将UIImageView子类化,它有一个drawrect:withBlendMode 有没有人用一种更简单的方法来做这件事?我希

我正在尝试快速反转现有UIView的颜色(变成负片,如照片负片)。或者选择颜色并降低饱和度。我认为比操作位图更容易的是使用另一个全白色(或阴影)的UIView,并使用blendmodes来实现我的目标

我看不到一种方法来指导如何在另一个UIView上绘制UIView。即使我将UIView子类化,我也看不到一种更简单的方法来使用blend进行drawrect。看起来我必须将UIImageView子类化,它有一个drawrect:withBlendMode

有没有人用一种更简单的方法来做这件事?我希望我可以在UIView或UIImageView上设置blendmode属性,而不必子类化


基本上,您将如何快速反转视图,以使黑色为白色,白色为黑色?

这似乎是解决方案:

板条箱UIView的一个子类。然后在drawRect中:

    [self.image drawInRect:rect];

    // prepare the context to draw into
    CGContextRef context = UIGraphicsGetCurrentContext();

    // set the blend mode
    CGContextSetBlendMode(context, kCGBlendModeDifference);

    // now draw the appropriate color over the whole thing
    CGContextFillRect(....);

我现在就去试试这个。

Hi@mahboudz,你找到更好的方法了吗?还是你还在用这种方式?谢谢这真的有效吗?我知道它到处都是,但它有用吗?