Это то, что я сделал в своем приложении, но без использования UIImageView
:
UIImage *bottomImage = [UIImage imageNamed:@"bottom.png"]; //background image
UIImage *image = [UIImage imageNamed:@"top.png"]; //foreground image
CGSize newSize = CGSizeMake(width, height);
UIGraphicsBeginImageContext( newSize );
// Use existing opacity as is
[bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
// Apply supplied opacity if applicable
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.8];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Если изображение уже имеет непрозрачность, вам не нужно устанавливать его (как в bottomImage), иначеВы можете установить его (как с изображением).
После создания UIImage
вы можете встроить его в UIImageView
ОБНОВЛЕНИЕ : благодаря Ahmet AkkoK - для режима смешивания пользователей Swift (2.2)макрос изменился.CGBlendMode .kCGBlendModeNormal
заменяется на CGBlendMode.Normal