0

我想在屏幕上的某个位置绘制“文本”而不​​使用UILabel,所以我

[@"text" drawAtPoint:CGPointMake(100, 200) 
     withFont:[UIFont fontWithName:@"Arial" size:10.0]];

然而,什么都没有出现,尽管描述drawAtPoint如下:

使用指定字体在当前图形上下文中的指定点处以单行方式绘制字符串。

我怀疑,我的错误是我在我的UIViewController's viewDidLoad方法中调用它,而不是放在视图上?(但是怎么做?)

同样,使用这种方式并避免使用 UILabel,如何将文本放置在自定义位置的屏幕上?

4

1 回答 1

2

如果要将字符串绘制到视图中,则需要将视图子类化并实现 drawRect 方法

- (void)drawRect:(CGRect)rect
{
    // Drawing code
    [[UIColor whiteColor] set];
    [@"Your string" drawInRect:CGRectMake(0, 0, 100, 100) withFont:[UIFont systemFontOfSize:16]];
}

没有放在视图上?(但是怎么做?)

这是因为字符串将在您在 drawRect 中调用它时有效的当前上下文中绘制,如果您从 viewDidLoad 调用 [@"Your string" drawInRec... 它将不起作用,因为您没有有效的上下文

同样,使用这种方式并避免使用 UILabel,如何将文本放置在自定义位置的屏幕上?

使用NSString来回绘图而不是UILabel,您可以使用drawInRect:withFont

于 2012-06-16T15:52:34.007 回答