2013-08-07 3 views
0

Я использую образец кода Apple TheElements для этого вопроса. Как бы я мог рисовать текст вне элементаSymbolRectangle. Например, я хотел бы отображать имя элемента, но мне нужно, чтобы он был вне элемента 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"];