2012-01-30 5 views
1

안녕하세요. 샌드 박스에 저장된 일부 .png 이미지를 그려 내고 UIView에 텍스트를 출력하려고합니다. 내 코드는 다음과 같습니다.UIView로 그려야합니다.

-(void)setItemDetails:(ItemShow *)itmShow 
{ 
    if(theItem!=itmShow) 
    { 
     [theItem release]; 
     theItem=itmShow; 
     [theItem retain]; 
    } 
    UIImage *rImage=[UIImage imageNamed:@"years"]; 
[[UIColor blackColor] set]; 
[rImage drawInRect:CGRectMake(55.0, 22.0, 17.0, 17.0)]; 

[[UIColor brownColor] set]; 

[theItem.itemYear drawAtPoint:CGPointMake(7.0,19.0) 
       forWidth:100 
       withFont:[UIFont systemFontOfSize:17.0] 
      minFontSize:17.0 
      actualFontSize:NULL 
      lineBreakMode:UILineBreakModeTailTruncation 
     baselineAdjustment:UIBaselineAdjustmentAlignBaselines]; 
} 

그 후이 메소드를 viewDidLoad에서 호출합니다. 아무 반응이 없습니다. UIView의 캔버스에 이미지와 텍스트를 볼 수 없습니다. 여기 뭐가 잘못 됐니?

답변

4

viewDidLoad이 iOS에서 그리기에 적합한 장소가 아니기 때문에 그럴 것입니다. 당신의 UIView 구현이 방법은 드로잉을 할 호출되는

- (void)drawRect:(CGRect)rect { 
CGContextRef myContext = UIGraphicsGetCurrentContext(); 
    // Do your drawing in myContext 
} 

: 당신은 다른 방법을 구현해야합니다. 어느 곳에서나 화면을 그리려는 시도는 원하는 결과를 얻지 못할 것입니다.

+0

솔직하게 말해서, 나는 UIViewController를 그리려하고 있습니다. 나는 당신의 코드를 다음과 같이 시도했다 : - (void) drawRect : (CGRect) rect { CGContextRef myContext = UIGraphicsGetCurrentContext(); UIImage * rImage = [UIImage imageNamed : @ "년"]; CGRect imageRect = CGRectMake (10, 10, 300, 400); [rImage drawInRect : imageRect]; [rImage release]; 하지만 아무 것도 그려지지 않았습니다. – NCFUSN

+0

@ Nathan 화면에서 그리기위한 유일한 장소는 UIView입니다. UIViewController에 drawRect를 넣으면 "dead code"상태로 남을 것입니다. 메서드가 호출되지 않습니다. UIView를 서브 클래스 화하고 그 drawRect를 오버라이드하고, 해당 UIView의 인스턴스를 만들고, 그 인스턴스를 UIViewController의'self.view'에 할당해야합니다. – dasblinkenlight

+0

확인. 시도해 볼게. 고맙습니다. – NCFUSN

관련 문제