1

我目前正在尝试在 XCode 中制作条形图。我已经尝试过 CPGraph 和周围的所有东西,但它们都过时了,我需要 XCode 4 的帮助。我对此完全陌生,这就是我需要你帮助的原因。

这是我的代码:

-(void)drawRect:(CGRect)rect

{

NSString *s = textField.text;
value = [s intValue];
NSLog(@"%i",value);


    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context, 60);

    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();

    CGFloat components[] = {0.0, 0.0, 1.0, 1.0};

    CGColorRef color = CGColorCreate(colorspace, components);

    CGContextSetStrokeColorWithColor(context, color);

    CGContextMoveToPoint(context, 400, value);
    CGContextAddLineToPoint(context, 400, 100);

    CGContextStrokePath(context);
    CGColorSpaceRelease(colorspace);
    CGColorRelease(color);

}

请注意,我已更改“值”的点值之一。我所做的是创建一个 UITextField,我希望能够在 UITextField 中写入 500,并且该栏会自行调整。目前,NSLog 告诉我该值等于 0,即使在构建我的应用程序之前,我在 TextField 中手动输入了一个数字。我已经搜索了 3 天,我发现的所有内容都给了我错误并且不完整,因为我说我对 xcode 中的 Objective-c 几乎一无所知。我在搜索过程中也注意到,如果你不告诉他,这种类型的行不会实时刷新。如果这是我的问题的一部分,我也希望得到帮助。如果您想了解有关我的代码的更多信息,请告诉我。如果有人可以帮助我,我将不胜感激。

这是我的 .h :

@interface draw2D:UIView

{

 UITextField *textField;

}

@property(非原子,保留)IBOutlet UITextField *textField;

@结尾

4

2 回答 2

0

好的,看起来因为您将 IB 中的文本字段连接到文件所有者,这通常是您的应用程序委托,它不是您上面的类,因为它是 UIView。因此,除非您将 File's Owner 更改为此 UIView,否则您的文本字段不会被连接。因此,通常我所做的是将 UIView 添加到 IB 中的 xib 窗口(如果您没有使用创建 XIB 时免费提供的那个)。然后这就是我将文本框附加到的内容,而不是文件的所有者。除非您在其中也声明了 UITextField (再次假设您没有将类从应用程序委托更改为该视图类),否则这有点引发了如何将任何内容附加到文件所有者的问题。

我知道,如果有人对此不熟悉,那几乎就像希腊人一样。我多年来一直使用 Java、C/C++、C# 等进行开发,这就像重新学习如何编程一样。

如果您对此不熟悉,我强烈建议您阅读 Big Nerd Ranch 的 iPhone 开发书籍。我发现它非常有用。

于 2011-02-17T23:02:35.847 回答
0

好的,我发现了如何通过按钮刷新来重绘我的线条。

我所做的是创建一个按钮并将其与正在绘制线条的 UIView 链接。我在里面写了[self setNeedsDisplay];,每次单击按钮时,它都会刷新视图并返回我以与 drawRect 相同的方法设置的 NSlog。

再次感谢 Merky。

于 2011-02-18T16:56:38.617 回答