2009-09-03 33 views
9

Tôi đang cố gắng nhanh chóng đảo ngược màu của một UIView hiện tại (biến thành âm bản, như trong ảnh tiêu cực). Hoặc để lấy màu sắc và giảm độ bão hòa. Tôi nghĩ rằng dễ dàng hơn so với thao tác bitmap là để có một UIView đó là tất cả các màu trắng (hoặc sắc thái), và sử dụng blendmodes để đạt được mục tiêu của tôi.Cách dễ nhất/nhanh nhất để áp dụng chế độ hòa trộn giữa hai UIViews

Tôi không thấy cách hướng dẫn cách UIView được vẽ lên đầu trang khác. Ngay cả khi tôi phân lớp UIView, tôi không thấy một cách dễ dàng để thu hút bằng cách sử dụng một pha trộn nhiều hơn nữa. Dường như tôi sẽ phải phân lớp UIImageView trong đó có một drawrect: withBlendMode.

Có ai đã làm điều này một cách dễ dàng hơn không? Tôi đã hy vọng tôi chỉ có thể thiết lập một tài sản blendmode trên một UIView hoặc UIImageView và không phải phân lớp ...

Về cơ bản, làm thế nào bạn sẽ nhanh chóng đảo ngược chế độ xem sao cho đen trắng và trắng có màu đen?

+0

Xin chào @mahboudz, bạn có tìm cách tốt hơn để làm điều đó không? hoặc bạn vẫn đang sử dụng cách này? Cảm ơn! –

Trả lời

7

Đây có vẻ là giải pháp:

Crate a subclass of UIView. Sau đó, trong 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(....); 

Tôi tắt để dùng thử ngay bây giờ.

+5

Và điều này có thực sự hiệu quả không? Tôi biết nó được đăng ở mọi nơi, nhưng nó có hoạt động không? –

Các vấn đề liên quan