我尝试将图片注释添加到条形图中。它在iOS模拟器中工作正常,但图像注释未在设备上显示。我正在使用Xcode 4.2。在两个设备上测试,一个是iOS 4.3,另一个是iOS5.0.1。
我正在使用带有Apple LLVM 3.0编译器的armv7。我知道图像文件名是区分大小写的,它是正确的。
我试过的代码如下:
CPTPlotSpaceAnnotation *imageAnnotation;
CGRect imageRect = CGRectMake(50, 50 ,30, 30);
CPTLayer *newImagelLayer = [[CPTLayer alloc] initWithFrame:imageRect];
newImagelLayer.contents = (id)[[UIImage imageNamed:@"test.png"] CGImage];
imageAnnotation = [[CPTPlotSpaceAnnotation alloc] initWithPlotSpace:plotSpace anchorPlotPoint:nil];
imageAnnotation.contentLayer = newImagelLayer;
[barPlot addAnnotation:imageAnnotation];
[newImagelLayer release];
[imageAnnotation release];
这是一个已知问题吗?我不明白为什么它在模拟器中有效但在设备上无效。
答案 0 :(得分:1)
我认为您可以通过在CPTBorderedLayer上使用CPTFill来实现此目的。
CPTPlotSpaceAnnotation *imageAnnotation;
CGRect imageRect = CGRectMake(50, 50 ,30, 30);
CPTBorderedLayer *newImagelLayer = [[CPTBorderedLayer alloc] initWithFrame:imageRect];
newImagelLayer.fill = [CPTFill fillWithImage:[CPTImage imageWithCGImage:[[UIImage imageNamed:@"dot-selector.png"] CGImage]]];
imageAnnotation = [[CPTPlotSpaceAnnotation alloc] initWithPlotSpace:plotSpace anchorPlotPoint:nil];
imageAnnotation.contentLayer = newImagelLayer;
[barPlot addAnnotation:imageAnnotation];
[newImagelLayer release];
[imageAnnotation release];
答案 1 :(得分:0)
可能是因为您尚未向目标添加test.png
。这在模拟器中正常工作,但如果资源未添加到目标,则在设备上,它不会被复制到生成的ipa文件中。
如果列出了test.png
,请检查复制捆绑资源下目标的构建阶段标签,如果不是,则可以拖放它。
答案 2 :(得分:0)
资产名称恰好是“test.png”,OSX中的文件系统是不区分大小写的,iOS是。这将导致它适用于模拟器,而不适用于设备。