0

我现在感觉很傻。

我正在尝试将文本绘制到 UIViewController 上。

我正在使用 Xcode 5 并从一个简单的单页项目开始,除了将此代码添加到 ViewController.m 之外,我什么也没做:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    CGRect myRect=CGRectMake(0,0,self.view.bounds.size.width,self.view.bounds.size.height);
    UIFont *myFont=[UIFont fontWithName:@"Helvetica" size:50];

    NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
    paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail;
    paragraphStyle.alignment = NSTextAlignmentRight;

    NSMutableDictionary *attributes = [[NSMutableDictionary alloc] init];
    [attributes setObject:myFont forKey:NSFontAttributeName];
    [attributes setObject:paragraphStyle forKey:NSParagraphStyleAttributeName];
    [attributes setObject:[NSNumber numberWithFloat:4] forKey:NSStrokeWidthAttributeName];
    [attributes setObject:[UIColor whiteColor] forKey:NSStrokeColorAttributeName];
    [@"test" drawInRect:myRect withAttributes:attributes];

    // draw fill
    [attributes removeObjectForKey:NSStrokeWidthAttributeName];
    [attributes removeObjectForKey:NSStrokeColorAttributeName];
    [attributes setObject:[UIColor blackColor] forKey:NSForegroundColorAttributeName];
    [@"test" drawInRect:myRect withAttributes:attributes];
}

它运行没有错误,但不产生任何文本 - 为什么?

4

2 回答 2

0

要添加到 tfrank377,您可以使用类似的方式以编程方式添加标签

   UILabel *addLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 30)];
   [self.view addSubview:addLabel];
   addLabel.text = @"Hello World";

这将在您的 UIView 上显示文本。

于 2014-04-14T22:04:03.850 回答
0

drawInRect方法不适用于UIViewController. 该方法是一种UIView方法,并且仅当您的类是UIView类或子类时才有效。

因此,如上所述,您可以在 UILabel 上设置文本属性并在屏幕上任意位置显示它们。它应该给你同样的效果。或者,您可以尝试将子类更改为UIView,但这可能需要对代码进行比您想要的更多的修改。

于 2014-04-14T21:56:01.850 回答