Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在CGRect外部绘制文本。_Ios_Frame_Cgrect - Fatal编程技术网

Ios 在CGRect外部绘制文本。

Ios 在CGRect外部绘制文本。,ios,frame,cgrect,Ios,Frame,Cgrect,我使用苹果的示例代码来回答这个问题。如何在elementSymbolRectangle之外绘制文本。例如,我想显示元素名称,但我需要它位于elementSymbolRectangle之外。我是编程新手,希望能得到任何帮助 谢谢 - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { [self setAutoresizesSubviews:YES];

我使用苹果的示例代码来回答这个问题。如何在elementSymbolRectangle之外绘制文本。例如,我想显示元素名称,但我需要它位于elementSymbolRectangle之外。我是编程新手,希望能得到任何帮助

谢谢

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

这解决了我的问题

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

我的建议是,在绘制元素符号图形时,先获取点,然后在符号底部创建UILabel。