drawAtPoint,需要澄清

时间:2012-06-16 15:44:12

标签: objective-c ios

我想在不使用UILabel的情况下在屏幕上的某个位置绘制“文字”,所以我

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

尽管drawAtPoint的描述为:

,但没有任何内容显示出来
  

在一行中的指定点绘制字符串   使用指定字体的当前图形上下文。

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

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

1 个答案:

答案 0 :(得分: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调用[@“你的字符串”drawInRec ...它不会有效,因为你没有效果上下文

  

再次,使用这种方式并避免使用UILabel,文本怎么样   放在自定义位置的屏幕上?

使用NSString来自绘图而非UILabel,您可以使用drawInRect:withFont