2009-12-02 43 views
11

UISlider的值當前顯示爲浮點數。我如何將它顯示爲一個整數?如何將UISlider的值顯示爲整數

sliderCtl = [[UISlider alloc] initWithFrame:frame]; 
    sliderCtl.minimumValue = 1; 
    sliderCtl.maximumValue = 15; 
    sliderCtl.continuous = NO; 
    sliderCtl.value = 1; 
    [sliderCtl setShowValue:YES]; 

回答

2

你可以截斷或舍從滑塊的值,然後更新,以提供有關更改的用戶反饋(它似乎捕捉到整數值,當用戶釋放)。釋放你的手指像值1,2後

-(IBAction)valueChanged:(UISlider*)sender { 
    int discreteValue = roundl([sender value]); // Rounds float to an integer 
    [sender setValue:(float)discreteValue]; // Sets your slider to this value 
} 

這將捕捉滑塊:

+0

這個謎題是我必須通過我的自我更新它嗎? – RAGOpoR 2009-12-02 04:31:10

+0

這應該工作。 – gerry3 2009-12-02 04:35:11

22

,如果你希望你的滑塊捕捉到不同的整數值,您可以使用這樣的事情在你的valueChanged功能,...,15基於兩個數字之間的距離。例如,如果你在2.4版中發佈了滑動條,它會回到2,而在2.6時,它會彈奏到3.

+1

roundtl似乎不存在於iOS中。然後Xcode精闢地建議「roundl」,這也不存在。 – Oscar 2011-10-06 00:24:26

+0

感謝您的單挑。我相應地更新了我的答案,以使用剛纔測試的函數roundl()。奇怪的是,我以前的答案在那個時候工作... – thgc 2011-10-08 19:51:54

+0

看起來像Xcode 4.5一樣的工作 - 我已經得到它正常工作,只有改變是因爲用戶仍在使用它 - 在用戶將其拖動到下一個值之前不會移動。 – GeneralMike 2012-11-29 18:35:41

相關問題