0

2 日間問題が発生しましたが、まだ解決できません。私が実際に行っているのは、グラフ ホスティング ビューを更新しようとしていることです。Graph Hosting View で UIViewController を開くと、標準のグラフが自動的に描画されます。私が欲しいのは、ユーザーがテキストフィールドに入力できるいくつかの係数に従ってグラフが変更されることです。

- (void)viewWillAppear:(BOOL)animated
{   
[super viewWillAppear:animated];
float x = -10;
float a = [coeff1.text floatValue];
 NSMutableArray *data = [NSMutableArray array];
for (x; x <= 10; x=x+0.2)
{
    [data addObject:[NSValue valueWithCGPoint:CGPointMake(x , a*x+1)]];
}
self.scatterPlot = [[TUTSimpleScatterPlot alloc] initWithHostingView:_graphHostingView     andData:data];
[self.scatterPlot initialisePlot];

おそらく、ユーザーが「coeff1.text」に新しい値を入力したときにビューが更新されることだけが必要であることがわかります。この質問はおそらくばかげているのですみませんが、正直なところ、それを回避する方法がわかりません。試してみました多くのことがあり、まだグラフを更新できません。何らかの方法で可能だと思ったのは、新しい係数を入力してボタン (IBAction) をクリックすることでグラフを更新することです...

前もってありがとう、エリック

4

1 に答える 1

0

まず第一に、float 値を正しく解析していません。これはあなたがそれを行う方法です:

  NSNumberFormatter *formatter = [NSNumberFormatter new];
  [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
  NSNumber * myNumber = [formatter numberFromString:coeff1.text];

次に、それcoeff1が実際には UITextField であることを考えると、このように変更された更新を編集するために登録するだけでよいはずです。

- (void)viewDidLoad {
  [super viewDidLoad];
  [coeff1 addTarget:self action:@selector(editingChanged:) forControlEvents:UIControlEventEditingChanged];
}

- (void)editingChanged:(UITextField *)textField {
  NSNumberFormatter *formatter = [NSNumberFormatter new];
  [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
  NSNumber * myNumber = [formatter numberFromString:coeff1.text];
  NSMutableArray *data = [NSMutableArray array];
  for (x = 0; x <= 10; x=x+0.2)
  {
    [data addObject:[NSValue valueWithCGPoint:CGPointMake(x , myNumber.floatValue*x+1)]];
  }
  self.scatterPlot = [[TUTSimpleScatterPlot alloc] initWithHostingView:_graphHostingView     andData:data];
  [self.scatterPlot initialisePlot];

}
于 2013-03-27T01:35:04.377 に答える