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);

}

「value」のポイント値の1つを変更したことに注意してください。私が行ったことは、UITextFieldを作成することであり、UITextFieldに500のように記述できるようにし、バーが自動的に調整されるようにしたいです。現在、NSLogは、アプリをビルドする前にTextFieldに手動で数値を入力した場合でも、値は0に等しいと教えてくれます。私は3日間検索してきましたが、xcodeのobjective-cについてほとんど何も知らないと言っているので、見つけたものはすべてエラーになり、不完全です。また、検索中に、このタイプの行は、彼に言わないとリアルタイムで更新されないことに気づきました。それが私の問題の一部であるなら、私もそれを手伝いたいです。私のコードの詳細が必要な場合は、教えてください。誰かが私を助けてくれたら本当にありがたいです。

これが私の.hです:

@interface draw2D:UIView

{{

 UITextField *textField;

}

@property(非アトミック、保持)IBOutlet UITextField * textField;

@終わり

4

2 に答える 2

0

OK、テキストフィールドがIBでファイルの所有者に接続されているように見えます。これは通常、UIViewであるため、上記のクラスではないアプリデリゲートです。したがって、ファイルの所有者をこのUIViewに変更しない限り、テキストフィールドは接続されません。したがって、通常、私が行うことは、UIViewをIBのxibウィンドウに追加することです(XIBの作成時に無料で提供されるウィンドウを使用していない場合)。次に、ファイルの所有者ではなく、テキストボックスを添付します。UITextFieldが宣言されていない限り、ファイル所有者に何かをアタッチする方法について疑問を投げかけます(ここでも、クラスをアプリデリゲートからこのビュークラスに変更しなかった場合)。

誰かがこれに不慣れであるならば、それはほとんどギリシャ人のようであることを私は知っています。私はJava、C / C ++、C#などで何年も開発しましたが、これはプログラミングの方法をもう一度学ぶようなものでした。

あなたがこれに不慣れであるならば、私はBigNerdRanchによるiPhone開発本を強く提案します。とても便利だと思いました。

于 2011-02-17T23:02:35.847 に答える
0

OK、更新ボタンで線を再描画する方法を見つけました。

私がしたことは、ボタンを作成し、線が描かれている UIView にリンクすることでした。私が書いた内部では[self setNeedsDisplay];、ボタンをクリックするたびにビューが更新され、drawRect と同じメソッドで設定した NSlog が返されます。

Merkyさん、またよろしくお願いします。

于 2011-02-18T16:56:38.617 に答える