У меня есть подкласс UIView, который я хотел бы использовать для рисования изображений с разными режимами наложения.
код:
@implementation CompositeImageView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void)setBlendMode:(CGBlendMode) composite
{
blender = composite;
}
-(void)setImage:(UIImage*) img
{
image = img;
}
- (void)drawRect:(CGRect)rect
{
NSLog(@"it draws");
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(c, blender);
CGContextDrawImage(c, rect, image.CGImage);
}
@end
код, который я использую для его настройки:
[testImage setImage:[UIImage imageNamed:@"Prayer_Background_Paid"]];
[testImage setBlendMode:kCGBlendModeColor];
[testImage setNeedsDisplay];
Я использую конструктор интерфейса для размещения большого прямоугольного UIView, а затем устанавливаю его класс на CompositeImageView. Тем не менее, он по-прежнему отображается в виде большого белого квадрата. Даже если я закомментирую все внутри drawRect, он все равно рисует белый квадрат. Однако он вызывает drawRect, потому что «он рисует» регистрируется.
nil
(возможно, опечатка в имени файла)? - person omz   schedule 28.04.2012