2011-08-23 35 views
1

我有一個UISlider有兩個文本框附加到它。把它想象成小費計算器。考慮收據:它有一個地方讓你把小費,然後是最終價值。讓我們在混合中添加一個滑塊。滑塊/文本框交換數據

所以現在我們有兩個文本字段(提示百分比和提示量)和滑塊。當滑塊移動時,它會調用一個方法,根據用戶使用滑塊選擇的值來更新兩個文本框。

[self.slider addTarget:self 
        action:@selector(sliderValueChanged:) 
      forControlEvents:UIControlEventValueChanged]; 

-(void)sliderValueChanged:(id)sender 
{ 
    tipPercent.text = [NSString stringWithFormat:@"%d", (int)slider.value]; 
    tipPercentDbl = (int)slider.value;//tipPercent as Dbl 
    tipDbl = (totalDbl * (tipPercentDbl/100));//tip as Dbl 
    tip.text = [NSString stringWithFormat:@"%.2f", tipDbl]; 
    tipPercent.text = [NSString stringWithFormat:@"%.0f", tipPercentDbl]; 
    totalWithTipDbl = (totalDbl+tipDbl); 
    totalWithTip.text = [NSString stringWithFormat:@"%.2f", totalWithTipDbl]; 
} 

這很好用。我現在想做的事情(而且很難搞清楚)是如何改變文本字段改變時的值。即有人手動輸入他們自己的提示,如何更新滑塊和提示百分比;或者是否有人手動輸入提示百分比,如何更新滑塊和提示值。

這樣做的最好方法是什麼?

回答

2

這很簡單。我不知道你使用的所有變量,所以當你嘗試代碼時替換你自己的變量。當鍵盤辭職,調用方法:

- (void)updateTheSliderAndTipPercentage; { 
    float percentage = tipTheyEntered/totalCost; 
    [slider setValue:percentage animated:YES]; 
    percentage *= 100; // This is if you want the percentage in [0,100]. 
    tipPercent.text = [NSString stringWithFormat:@"%f", percentage]; 
} 

編輯:爲了知道當你調用這個方法,簡單的檢查:

- (BOOL)textFieldShouldReturn:(UITextField *)textField; { 
    if(textField == tipTheyEnteredTextField){ 
    [self updateTheSliderAndTipPercentage]; 
    } 
} 

希望幫助!

+0

唯一的是我們如何知道他們是否改變了提示百分比或提示本身? – Baub

+1

我需要查看更多代碼才能完全回答,但基本上,您需要檢查哪些文本字段會退出。我會編輯我的上面的代碼。 – msgambel

+0

現在就試試看。我非常感謝你的幫助。 – Baub