2012-01-06 4 views
0

Я попытался добавить аннотацию изображения к штрих-коду. Он отлично работает в iOS-симуляторе, но аннотация изображения не показана на устройстве. Я использую Xcode 4.2. Протестировано на двух устройствах: iOS 4.3, другой - iOS5.0.1.CPTPlotSpaceAnnotation с изображением, не работающим на устройстве, работает в симуляторе

Я использую armv7 с компилятором Apple LLVM 3.0. Я знаю, что имя файла изображения чувствительно к регистру, и это правильно.

Кусок кода я попытался ниже:

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

Почему у вас есть newLabelLayer и newImageLayer? –

+0

Это опечатка, когда я задал вопрос. Все они являются новымиImagelLayer. – user1135111

ответ

0

Возможно, вы не добавили test.png к цели. Это работает нормально в симуляторе, но на устройстве, если ресурс не добавлен к цели, он не будет скопирован в файл ipa, который будет сгенерирован.

Проверить в Строительстве фаз вашей цели вкладки под Копированием Bundle ресурсов если ваш test.png находится в списке, если вы не можете просто перетащить его.

+0

Спасибо за ответ. Я дважды проверял это, и изображение есть. В отладке я также вижу, что объект UIImage создан правильно, просто не отображается на экране устройства. – user1135111

1

Я думаю, вы можете сделать это, используя CPTFill на CPTBorderedLayer.

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]; 
0

ли актив назван именно «test.png» файловая система в OSX чувствителен к регистру, Иос. Это приведет к тому, что он будет работать для симулятора, а не для устройства.

Смежные вопросы