2011-09-20 66 views

回答

0

我在滑塊中同時具有正值和負值。 所以以上所有答案對我來說都沒有用。 即使我不能比較滑塊的舊值和新值與==的區別。 所以這是另一個問題。

這是我的工作代碼。

float incDecTempoVal=0.02; 
float val_tempo=[[NSString stringWithFormat:@"%.02f",sliderBMP.value] floatValue]; 

if (sliderBMP.value<0.0) 
    sliderBMP.value=sliderBMP.value-(incDecTempoVal-fabs(fmod(val_tempo,incDecTempoVal))); 

else 
    sliderBMP.value=sliderBMP.value+(incDecTempoVal-fabs(fmod(val_tempo, incDecTempoVal))); 
0

就做這樣的事情

 

-(IBAction)valueChanged:(id)sender 
{ 
    if (sender.value == 2) 
    { 
     //do something here 

    } 
} 
 

編輯:

我剛剛意識到比較花車只是在C和Objective-C的痛苦。所以,如果我是你,我會使用一個int(2)而不是一個浮點數(0.02),並在你需要計算時將int轉換爲浮點數。

+0

這是行不通的。使用浮動很好。 – Mundi

0

要在UISlider中實現離散值,您需要在valueChanged方法中處理此邏輯。例如

-(void)valueChanged:(UISlider *)slider { 
    NSInteger value = (NSInteger) (slider.value+0.005)*100; 
    value = (value/2) * 2; //round down if necessary 
    [slider setValue:value/100.0 animated:NO]; 
} 

要讀取的調整值,如果你需要的話,這將是value/100.0
注意:也許你必須將滑塊的continuous屬性設置爲NO

0

我明白,你想知道什麼時候的UISlider的值增加/減少0.02恰好如此:

我認爲你必須存儲您UISlider的最後一個值。

-(IBAction)valueChanged:(id)sender { 
    UISlider * slider = (UISlider *) sender; 
    //using fabs() because maybe value decreased 
    if (fabs(slider.value - lastValue) == 0.02) 
    { 
     //Your code here 
    } 
    lastVaule = slider.value; 
} 
相關問題