IOS UIImageView以黑色背景显示

所以我有这个缩放UIImages函数,我用它来初始化一个图像的UIImageView 。 我的问题是,当图像显示时,它总是有一个黑色的矩形,尽pipe图像是一个背景完全透明的PNG。

这里是缩放方法以及UIImageView的初始化:

 - (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { if ([[UIScreen mainScreen] scale] == 2.0) { UIGraphicsBeginImageContextWithOptions(newSize, YES, 2.0); } else { UIGraphicsBeginImageContext(newSize); } } else { UIGraphicsBeginImageContext(newSize); } [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } - (void)addMass:(Mass *)mass{ UIImageView *image = [[UIImageView alloc]initWithImage:[self imageWithImage:[UIImage imageNamed:@"circle.png"] scaledToSize:CGSizeMake(mass.mass, mass.mass)]]; [image setBackgroundColor:[[UIColor alloc]initWithRed:0 green:0 blue:0 alpha:1]]; image.center = [mass position]; [image setBackgroundColor:[UIColor clearColor]]; [massImages addObject:image]; [self.view addSubview:image]; } 

正如你可以看到我已经使用[image setBackgroundColor:[UIColor clearColor]]; 尝试设置UIImageView的背景颜色清除,但这似乎并没有工作。

所有你需要做的是

 UIGraphicsBeginImageContextWithOptions( newSize, NO, 0 ); 

比例因子将自动设置,并且结果图像中未触摸的像素将是透明的。