2009-09-03 9 views
9

Próbuję szybko odwrócić kolory istniejącego UIView (zamień na negatyw, tak jak w negatywu fotograficznym). Lub, aby zabrać kolory i zmniejszyć nasycenie. Myślę, że łatwiejsze niż manipulowanie bitmapą jest wzięcie kolejnego UIView, który jest cały biały (lub odcieni), i użycie blendmodes do osiągnięcia moich celów.Najprostszy/najszybszy sposób zastosowania trybu mieszania między dwoma UIViews

Nie widzę sposobu, aby wskazać, w jaki sposób UIView jest rysowany na drugim. Nawet jeśli mam podklasę UIView, nie widzę łatwego sposobu rysowania przy użyciu mieszania więcej. Wygląda na to, że będę musiał podklasę UIImageView, która ma drawrect: withBlendMode.

Czy ktoś zrobił to w łatwiejszy sposób? Miałem nadzieję, że mogę ustawić właściwość blendmode na UIView lub UIImageView i nie mam podklasy ...

Zasadniczo, jak szybko odwrócić widok, aby czerń była biała, a biała czarna?

+0

Witam @mahboudz, czy znalazłeś lepszy sposób na zrobienie tego? lub nadal używasz w ten sposób? Dzięki! –

Odpowiedz

7

To wydaje się być rozwiązaniem:

Crate podklasą UIView. Następnie w 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(....); 

Mam zamiar wypróbować to teraz.

+5

Czy to rzeczywiście zadziałało? Wiem, że jest wszędzie, ale czy to działa? –

Powiązane problemy