在Rectangle中绘制NSString的对象。

时间:2014-08-19 16:07:55

标签: ios objective-c

我正试图通过drawInRect:withAttributes:方法将字符串放入矩形表格中。官方文档写道:“使用当前聚焦的UIView中指定矩形内的给定属性的字体和其他显示特性绘制接收器。”

此操作应在按钮事件上完成。但它根本不起作用。没有显示任何内容。 我使用的代码:

- (IBAction)buttonPressed:(id)sender
{
    // some area on the top (a part of UIView)
    CGRect rect = CGRectMake(50, 50, 100, 100);

    // my text
    NSString *str = @"Eh, what's wrong with this code?";

    // crappy attributes
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont boldSystemFontOfSize:8]};

    // and finally passing a message
    [str drawInRect:rect withAttributes:attributes];
}

是否有特定类型的区域可用于在rects中绘制字符串?或者是否可以在我想要的矩形中绘制一个字符串?请帮助我更好地理解它!

3 个答案:

答案 0 :(得分:3)

  

但它根本不起作用。什么都没有显示出来。

那是因为运行该代码时没有设置绘图上下文。您可以随时将绘图看作是可以随时执行的操作,但事实上绘图是您应该只在系统要求时执行的操作。在其他时候,你应该记住你想要绘制的内容,然后在时机成熟时绘制它。

"时间"画画?在调用您的查看-drawRect:方法时。由于您的方法是一个动作,看起来您可能正在尝试在视图控制器中进行绘制。你想要做的是继承UIView并覆盖-drawRect:来绘制你想要的东西。

答案 1 :(得分:1)

它不会那样工作,你首先需要制作一个 CGContextRef 来绘制文字。

答案 2 :(得分:0)

您的代码很好,只需将所有内容放在drawRect