2012-09-19 4 views
2

저는 애플 리케이션을 끝내고 핵심 플롯과 헌신적 인 직원의 도움을 받아 훌륭한 것들을 추가했습니다. 제 질문은 망막 디스플레이로 이미지를 사용하는 것과 관련이 있습니다. 나는 연설 거품의 그림 인 주석을 가지고있다. 시뮬레이터에서 응용 프로그램을 실행하면 일반 해상도에서는 정상적으로 표시되지만, 망막으로 전환하면 이미지가 잘립니다. 아래 그림을 참조하십시오. 나는 Bubble이라고 부르는 .png를 가지고 있는데, 나는 Bubble @ 2x라고하는 또 다른 것을 추가했다. 이것은 2 배의 크기로, 이것이 내가해야 할 필요가 있다고 생각했다. 그것은 작동하지 않았다. 그래서 view.contentScale을 설정하려고했습니다. 아래 코드를보십시오. 그러나 아무것도 작동하는 것 같습니다. 누구든지 내가 잊어 버린 것에 대해 어떤 생각을 가지고 있습니까? 다시 한번 감사합니다.코어 플롯 1.0 망막 이미지가 올바르게 표시되지 않습니다.

{ 
    //first annotation 
    NSValue *value = [self.myData objectAtIndex:index]; 
    CGPoint point = [value CGPointValue]; 
    NSString *number1 = [NSString stringWithFormat:@"(%.2f, ", point.x]; 
    NSString *number2 = [NSString stringWithFormat:@"%.2f)", point.y]; 
    NSNumber *x = [NSNumber numberWithFloat:point.x]; 
    NSNumber *y = [NSNumber numberWithFloat:point.y];  
    NSArray *anchorPoint = [NSArray arrayWithObjects: x, y, nil]; 
    NSString *final = [number1 stringByAppendingString:number2]; 

    //second annotation   
    UIImage *bubble = [UIImage imageNamed:@"Bubble.png"]; 
    CPTImage *fillimage = [CPTImage imageWithCGImage:bubble.CGImage]; 
    CPTBorderedLayer *imageLayer = [[CPTBorderedLayer alloc] init]; 
    //imageLayer.contentsScale = [[UIScreen mainScreen] scale]; //tried this 
    imageLayer.frame = CGRectMake(0, 0, 150, 80); 
    //imageLayer.contentsScale = 2.0f; //and this 

    imageLayer.fill = [CPTFill fillWithImage:fillimage]; 

    CPTTextLayer *textLayer = [[CPTTextLayer alloc] initWithText:final style:annotationTextStyle]; 
    _annotation = [[CPTPlotSpaceAnnotation alloc] initWithPlotSpace:graph.defaultPlotSpace anchorPlotPoint:anchorPoint];   
    _annotation.contentLayer = textLayer;   
    _annotation.displacement = CGPointMake(90.0f, 5.0f); 
    _annotation.rotation = M_PI * .03f; 

    _picAnnotation = [[CPTPlotSpaceAnnotation alloc] initWithPlotSpace:graph.defaultPlotSpace anchorPlotPoint:anchorPoint]; 
    _picAnnotation.contentLayer = imageLayer; 
    _picAnnotation.displacement = CGPointMake(75.0f, 5.0f); 

} 

그 코드 다음에 두 주석을 모두 넣었습니다. 당신이 볼 수 있듯이, 다른 하나는 작동하지 않습니다. 당신이 망막의 이미지를 지원해야하는 경우 CPTImage를 만들 때 Retina Display

Regular Display

답변

6

당신은 이미지 scale을 통과해야한다.

CPTImage *fillimage = [CPTImage imageWithCGImage:bubble.CGImage 
              scale:bubble.scale]; 
+0

다시 한 번 해 보았습니다. 모든 도움에 감사드립니다. 나는 당신에게 내가 배포 할 수있는 프로모션 코드 중 하나를 줄 수 있었으면 좋겠다. 나는 당신이 아마도 당신의 눈을 감고이 응용 프로그램을 작성할 수 있지만 그것은 영광이 될 것입니다 알아요! 다시 한번 감사드립니다. – Douglas

관련 문제