0

我正在编写一个brickbreaker,我正在创建一个将在屏幕上绘制所有元素(球、砖块和桨)的类。

我试图把官方文档中的一些代码放在一起:

    -(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;

}

我无法测试这个,因为我的其他课程还没有完成,但它是“概念上”的吗?否则,您是否有一些样本可以测试以将图像 UIImages 绘制到 UIImageView 中并进行检索,例如 center.x 和 center.y 位置?

谢谢

4

1 回答 1

0

几点:

  • 假设您在应用程序包中为图像捆绑图形,为什么不直接使用 [UIImage imagedName: @"Brick.png"] 来加载图像?
  • 您正在泄漏 UIImage 和 UIImageView,这表明您可能需要重新访问基本的内存管理文档。
于 2011-02-07T13:23:59.923 回答