9 Stimmen

Einfachste/schnellste Methode zur Anwendung eines Mischmodus zwischen zwei UIViews

Ich versuche, die Farben einer vorhandenen UIView schnell zu invertieren (in ein Negativ zu verwandeln, wie bei einem fotografischen Negativ). Oder um die Farben zu nehmen und die Sättigung zu verringern. Ich denke, einfacher als die Bitmap zu manipulieren, ist es, eine andere UIView zu nehmen, die ganz weiß ist (oder Schattierungen), und Blendmodes zu verwenden, um meine Ziele zu erreichen.

Ich sehe keine Möglichkeit, zu steuern, wie eine UIView über eine andere gezeichnet wird. Selbst wenn ich UIView subclass, ich sehe nicht eine einfache Möglichkeit, drawrect mit einer Mischung mehr. Es sieht so aus, dass ich UIImageView, die eine drawrect:withBlendMode hat subclass müssen.

Hat jemand dies auf eine einfachere Weise getan? Ich hatte gehofft, ich könnte einfach eine Blendmode-Eigenschaft auf eine UIView oder UIImageView und nicht zu subclass...

Wie kann man eine Ansicht schnell umkehren, so dass Schwarz weiß und Weiß schwarz ist?

7voto

mahboudz Punkte 39008

Dies scheint die Lösung zu sein:

Erstellen Sie eine Unterklasse von UIView. Dann in 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(....);

Ich werde das jetzt ausprobieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X