代码之家  ›  专栏  ›  技术社区  ›  Gattster

如何在iPhone应用程序中重写文本

  •  1
  • Gattster  · 技术社区  · 14 年前

    下面是显示当前时间的函数。

    - (void)drawRect:(CGRect)rect {
        CGPoint location = CGPointMake(10,20);
        UIFont *font = [UIFont systemFontOfSize:24.0];
        [[UIColor whiteColor] set];
        NSString *s = [NSString stringWithFormat:@"%@", [NSDate date]];
        [s drawAtPoint:location withFont:font];
    }
    

    以下是每秒刷新当前时间的计时器:

    - (IBAction)startRepeatingTimer {
        NSRunLoop *runloop = [NSRunLoop currentRunLoop];
        NSTimer *timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
        [runloop addTimer:timer forMode:NSDefaultRunLoopMode];
    }
    
    - (void)timerFireMethod:(NSTimer*)theTimer {
        [self setNeedsDisplay];
    }
    

    我怎样才能删除旧的文字或擦干净整个屏幕?

    2 回复  |  直到 14 年前
        1
  •  1
  •   TechZen    14 年前

    一旦你将文本绘制到一个上下文中,它就不再是文本,而只是位中的另一个图形模式。基本上,您只能用背景色覆盖绘制的文本。如果你有一个复杂的背景,你可以在绘制文本之前复制它,然后在同一个位置反复绘制副本来删除。

        2
  •  0
  •   Gattster    14 年前

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(0, 0, 0, 0, 0);
    CGContextFillRect(context, rect);