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

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


尽管drawAtPoint的描述为:


  在指定位置的单点画线
  当前图形上下文使用指定的字体。


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

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

最佳答案

如果要向视图绘制字符串,则需要对视图进行子类化并实现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

关于objective-c - drawAtPoint,需要澄清,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11064872/

10-11 02:21
查看更多