У меня есть подкласс UIView, который я бы хотел использовать для рисования изображений с различными режимами наложения.drawRect в подклассе 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' (возможно, опечатка в имени файла)? – omz
есть. Я также попробовал несколько других изображений в проекте. Если что-то не так с тем, как я получаю/рисую изображение, тогда я понятия не имею, что может быть неправильным - поэтому, почему я разместил здесь. (не уверен, что с отрицательными голосами) – Nyth
Вы смогли сделать эту работу? Я пытаюсь сделать то же самое прямо сейчас. –