2014-11-14 6 views
1

Я хотел бы применить BlendMode насыщения с использованием UIView на других представлениях, например:IOS 7/8 Objective C - применять BlendMode взглядам

Example BlendMode : Пример

У меня есть UILabel и UIImageView в представлении моего ViewController, плюс BlendView, который перезаписывает метод drawRect.

- (void) drawRect:(CGRect)area 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSaveGState(context); 

    [[UIColor whiteColor] setFill]; 
    CGContextSetBlendMode(context, kCGBlendModeSaturation); 
    CGContextFillRect(context, self.bounds); 
    CGContextRestoreGState(context); 
} 

Однако, у меня есть только черный квадрат, если kCGBlendModeSaturation дается и белый квадрат, если kCGBlendModeMultiply отдавания - BlendMode не применяется. Я установил BlendView как непрозрачный и протестированный с различным значением альфа, никаких изменений.

P.S .: Я хочу, чтобы blendmode применялся к любым представлениям, а не только к изображениям.

ответ

1

Вы не можете применить режим смешивания к одному виду и надеяться, что это будет иметь какое-то влияние на виды ниже, как и на слои в Photoshop (единственный состав, который вы можете сделать между двумя отдельными видами, - это изменить их непрозрачность).

Единственное, что вы можете сделать, это сделать на одном виде drawRect, нарисовать с определенным режимом заполнения по сравнению с предыдущими инструкциями по рисованию.

+0

Спасибо за ваш ответ, я думал, что это невозможно и так, но не уверен. Однако можно ли перезаписать '.view' ViewController и переписать метод' drawRect' и применить blendmode? Если да, то как? – Tot