2009-09-03 3 views
9

기존 UIView의 색상을 빠르게 반전하려고합니다 (사진 네거티브처럼 네거티브로 변환). 또는 색을 잡고 채도를 낮추십시오. 비트 맵을 조작하는 것보다 더 쉬운 방법은 모두 흰색 (또는 음영) 인 다른 UIView를 사용하고 blendmode를 사용하여 내 목표를 달성하는 것입니다.두 UIView간에 블렌드 모드를 적용하는 가장 쉽고 빠른 방법

UIView가 다른 UIView 위에 그려지는 방식을 지시하는 방법이 없습니다. UIView를 서브 클래스로 만들더라도 블렌드를 더 많이 사용하여 쉽게 그릴 수있는 방법은 없습니다. drawrect : withBlendMode가있는 UIImageView를 서브 클래스해야 할 것 같습니다.

쉬운 방법으로이 작업을 수행 한 사람이 있습니까? UIView 또는 UIImageView에 blendmode 속성을 설정하고 서브 클래스를 만들지 않기를 바랬습니다. ...

기본적으로 검정색이 흰색과 검정색이되도록보기를 반전하려면 어떻게해야합니까?

나무 상자에 UIView의 서브 클래스 :

+0

안녕하세요 @ mahboudz, 더 나은 방법을 찾았습니까? 또는 당신은 아직도이 방법을 사용하고 있습니까? 감사! –

답변

7

이것은 해결책이 될 것으로 보인다. 그런 다음 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(....); 

지금 사용해 보겠습니다.

+5

그리고 이것이 실제로 효과가 있습니까? 어디서나 게시된다는 것을 알고 있지만 작동합니까? –

관련 문제