Я не знаю, как вы создаете изображение в функции imagawithimage вашего контроллера вида.
Если вы используете CGContext для масштабирования изображения, используйте CGContextSetAlpha()
до CGContextDrawImage()
.
Если вы не можете сделать еще одну вещь, несомненно, вам нужно будет написать для этого еще несколько строк, но это может быть одним из способов:
CGSize size = [self size];
int width = size.width;
int height = size.height;
// the pixels will be painted to this array
uint32_t *pixels = (uint32_t *) malloc(width * height * sizeof(uint32_t));
// clear the pixels so any transparency is preserved
memset(pixels, 0, width * height * sizeof(uint32_t));
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
// create a context with RGBA pixels
CGContextRef context = CGBitmapContextCreate(pixels, width, height, 8, width * sizeof(uint32_t), colorSpace,
kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
// paint the bitmap to our context which will fill in the pixels array
CGContextSetAlpha(context, 0.5);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), [self CGImage]);
CGImageRef image = CGBitmapContextCreateImage(context);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
free(pixels);