UIImageView屏蔽创建内存警告



我有4个uiview每个view包含大约16个UIImageViews。我通过下面的代码

对所有的uiimageview应用蒙版
-(void)setMask:(UIImage*)maskImage forImageView:(UIImageView*)imageView
{
    CALayer *mask = [[[CALayer alloc] init] autorelease];
    mask.contents = (id)[maskImage CGImage];
    mask.frame = CGRectMake(0, 0, 1024, 768);
    imageView.layer.mask = mask;
    imageView.layer.masksToBounds = YES;
    return;
}

这是UIImageView遮罩的正确代码吗?

每个UIImageView是通过遮罩改变图像。但是在改变图片超过5张之后,UIImageView出现了"接收内存警告",然后崩溃了。所有图片的分辨率都是1024*768,即使是蒙版图片也是如此。

试试这个"

UIGraphicsBeginImageContextWithOptions

但我不确定这是否会帮助你。但我在很多情况下都用过它,我没有得到任何警告。试试吧,可能会有帮助。像这样:

UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 1.0); //retina res
[self.imageView.layer renderInContext:UIGraphicsGetCurrentContext()];
[imageView.image drawInRect:CGRectMake(0, 0, 703, 294)];
[maskImages.image drawAtPoint:CGPointMake(10, 10) blendMode:kCGBlendModeNormal alpha:0.2];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

你曾经使用CGContextClipToMask创建蒙版,我认为它会起作用,不会给你内存警告。你用了太多imageview。它在视网膜上的表现如何?在遮罩的情况下,效果还好吗

相关内容

  • 没有找到相关文章

最新更新