2013-03-27 116 views
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爲)來更新圖表...

謝謝你在前進, 埃裏克

回答

0

首先,你'不正確地解析浮點值。這是你如何做到這一點:

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

} 
更新