是否可以在iPhone上渲染矢量图像文件的方式与渲染位图(png,jpeg)文件的方式相同?我尝试过eps和pdf文件,两者似乎都不起作用 - 它们在Interface Builder中正确显示但在运行时不显示。
控制台输出一条消息,沿着'无法加载“image.pdf”图像从包含标识符“com.yourcompany.project”中的nib引用“
我对此的所有搜索都提出了使用OpenGL等绘制矢量文件的讨论。这是唯一的方法吗?由于没有提到矢量文件支持,我不确定我的文件是否由于文件问题而被加载(我尝试过不同的版本),或者因为它们不受支持。
答案 0 :(得分:4)
可以使用Core Graphics以原生方式呈现PDF图像并创建它们。像这样:
void DrawPDF (CGContextRef context, NSString *name)
{
NSURL *url = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: name ofType: @"pdf"]];
CGPDFDocumentRef doc = CGPDFDocumentCreateWithURL((CFURLRef)url);
CGPDFPageRef page = CGPDFDocumentGetPage(doc, 1);
CGRect box = CGPDFPageGetBoxRect(page, kCGPDFCropBox); //kCGPDFArtBox);
CGContextDrawPDFPage(context, page);
CGPDFDocumentRelease(doc);
}
当然是SVG的UIWebView。
答案 1 :(得分:2)
对于矢量图形格式没有直接支持,例如PNG和JPEG。任何矢量图形渲染都将以编程方式完成,即使用Quartz绘图调用来描边和填充路径对象。
答案 2 :(得分:1)
可以通过UIWebView加载PDF。如果您需要更多控制,可以使用Quartz 2D渲染PDF:Quartz2D
答案 3 :(得分:1)
是的,它支持SVG。
您可以将矢量文件转换为SVG,并使用像Raphael这样的库转换为javascript来渲染它们。我在拉斐尔的网站具有类似闪存的功能,它们在iPhone上完美呈现 - 这是网络标准的好处!
答案 4 :(得分:1)
您可以使用类似http://www.codeautomat.com/的内容将SVG文件转换为Core Graphics Objective-C代码。