2011-02-07 70 views
0

我正在写一个砖块破碎程序,我正在创建一个能够在屏幕上绘制所有元素(球,砖和桨)的类。目标c:在屏幕上绘制PNG(在UIImageView里面的UIImage)

我试图把toghether由官方文档的一些代码:

-(id) drawWithGC: (CGContextRef) myContext andCGRect: (CGRect) myContextRect andPath: (const char *) filename 
{ 
    CGImageRef image; 
    CGDataProviderRef provider; 
    CFStringRef path; 
    CFURLRef url; 

    path = CFStringCreateWithCString (NULL, filename, kCFStringEncodingUTF8); 
    url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, NO); 
    CFRelease(path); 
    provider = CGDataProviderCreateWithURL (url); 
    CFRelease (url); 
    image = CGImageCreateWithPNGDataProvider (provider, NULL, true, kCGRenderingIntentDefault); 
    CGDataProviderRelease (provider); 
    CGContextDrawImage (myContext, myContextRect, image); 
    CGImageRelease (image); 

    UIImage *finalImage = [[UIImage alloc] imageWithCGImage:image]; 
    UIImageView *finalImageView = [[UIImage alloc] initWithImage:finalImage]; 

    return finalImageView; 

} 

我不能对此进行测试,因为我的其他类还没有完成,但它是“概念”了吧? 否则你是否有一些我可以测试的图像来将UIImage绘制到UIImageView和retrive中,例如center.x和center.y的位置?

感谢

+0

这是在写完之前完成的......在谈话之前打开你的眼睛! ;-) – Michele 2011-02-08 17:47:35

回答

0

的几点:

  • 假设你正在你的应用程序包内捆绑图形为你的形象,为什么不直接使用[UIImage的imagedName:@“Brick.png”]载入图像?
  • 您正在泄漏UIImage和UIImageView,这表明您可能需要重新访问基本内存管理文档。