2013-08-07 65 views
0

我對這個問題使用Apple的示例代碼TheElements。我將如何去繪製elementSymbolRectangle之外的文本。例如,我想顯示元素名稱,但我需要它在elementSymbolRectangle之外。我是編程新手,希望得到任何幫助。在CGRect之外繪製文字。

感謝

- (id)initWithFrame:(CGRect)frame { 

     if (self = [super initWithFrame:frame]) { 
      [self setAutoresizesSubviews:YES]; 
      [self setupUserInterface]; 

      // set the background color of the view to clearn 
      self.backgroundColor=[UIColor clearColor]; 
     } 
     return self; 
    } 

    - (void)jumpToWikipedia:(id)sender { 

     // create the string that points to the correct Wikipedia page for the element name 
     NSString *wikiPageString = [NSString stringWithFormat:@"http://en.wikipedia.org/wiki/%@", self.element.name]; 
     if (![[UIApplication sharedApplication] openURL:[NSURL URLWithString:wikiPageString]]) 
     { 
      // there was an error trying to open the URL. for the moment we'll simply ignore it. 
     } 
    } 

    - (void)drawRect:(CGRect)rect { 

     // get the background image for the state of the element 
     // position it appropriately and draw the image 
     // 
     UIImage *backgroundImage = [self.element stateImageForAtomicElementView]; 
     CGRect elementSymbolRectangle = CGRectMake(0, 0, [backgroundImage size].width, [backgroundImage size].height); 
     [backgroundImage drawInRect:elementSymbolRectangle]; 

     // all the text is drawn in white 
     [[UIColor whiteColor] set]; 

     // draw the element number 
     UIFont *font = [UIFont boldSystemFontOfSize:32]; 
     CGPoint point = CGPointMake(10,5); 
     [[NSString stringWithFormat:@"%@", self.element.atomicNumber] drawAtPoint:point withFont:font]; 

     // draw the element symbol 
     CGSize stringSize = [self.element.symbol sizeWithFont:font]; 
     point = CGPointMake((self.bounds.size.width-stringSize.width-10),5); 
     [self.element.symbol drawAtPoint:point withFont:font]; 
+0

我的建議是,你得到的點,你讓你的元素符號繪製,然後在符號的底部創建一個UILabel。 –

回答

0

這解決了我的問題。

UILabel *scoreLabel = [ [UILabel alloc ] initWithFrame:CGRectMake((self.bounds.size.width/2), -50.0, 100.0, 100.0) ]; 
scoreLabel.textAlignment = UITextAlignmentCenter; 
scoreLabel.textColor = [UIColor whiteColor]; 
scoreLabel.backgroundColor = [UIColor blackColor]; 
scoreLabel.font = [UIFont fontWithName:@"Arial Rounded MT Bold" size:(36.0)]; 
[self addSubview:scoreLabel]; 
scoreLabel.text = [NSString stringWithFormat: @"Test"];