Overlay UIImageViews mit Multiply Mischmodus?

8

Ich habe 2 UIImageViews, die übereinander angezeigt werden. Einer von ihnen kann mit einem Gestenerkenner herumgeschleift werden.

Gibt es eine Möglichkeit, dass die ImageViews mit einem Mischmodus wie Multiply gerendert werden können? So dass, wenn sie sich vor jedem bewegen, sie mit diesem Mischmodus gerendert werden?

    
Gregor Hochmuth 30.01.2013, 17:05
quelle

1 Antwort

10

Sie müssen die Funktion drawRect: in der übergeordneten Ansicht überschreiben, um so etwas wie folgt zu erreichen:

%Vor%

Sie greifen den aktuellen graphicsContext auf und zeichnen die beiden Bilder mit einem Multiply-Blend-Modus hinein.

Um dies sehen zu können, müssen Sie das Alpha der beiden Bilder auf 0 setzen oder den neu gezeichneten Inhalt verdecken. Da die Elternansicht sie neu zeichnet, sehen Sie die resultierenden multiplizierten Versionen.

Auch wenn die Positionen der Bilder aktualisiert werden, müssen Sie setNeedsDisplay in der übergeordneten Ansicht aufrufen, um sie erneut zum Aufruf von drawRect zu zwingen.

Ich bin mir sicher, dass es wahrscheinlich effizientere Möglichkeiten gibt, mit Quartz 2D das zu erreichen, was Sie wollen, aber das ist wahrscheinlich das Einfachste.

    
mjvotaw 30.01.2013 19:47
quelle