2012-02-23 33 views
1

我有UISlider0,1,2和3四個點。我希望當拇指位置從0-1時,它應該回到0,但有彈性效果。類似於1-2,2-3。這個實現會在我的應用程序中給我一個優勢。iPhone上的UISlider的彈性效果

我試過了,沒有彈性效果。但它看起來不太好。

回答

3

告訴你的滑塊上的「潤色內部」發送動作事件(UIControlEventTouchUpInside)。掛鉤的處分,這種方法:

- (IBAction)dragEndedWithSlider:(UISlider *)sender { 
    CGFloat roundedValue = roundf(sender.value); 
    [sender setValue:roundedValue animated:YES]; 
} 

可以使用truncf而不是roundf如果這是你真正想要的。

+0

Wao .. !!有奇蹟。感謝羅布:) – Nitish 2012-02-23 18:48:35

+0

+1:優雅! :) – 2012-02-23 18:51:24

+0

嗨@rob mayoff,你可以說我有1-2-3-4-5的比例尺......現在拇指圖像應該只移動到2-4,而在4之後它不應該移動進一步。 – Srinivas 2012-05-06 05:25:09

2

綁定此方法在Interface Builder更改滑塊值

-(IBAction)sliderChanged:(id)sender { 

     slider.value = (int)slider.value; 
    } 
+0

這是我試過的:)這不會產生彈性效果。 – Nitish 2012-02-23 18:40:50

+0

嗨NeverBe,你能說我有1-2-3-4-5的比例嗎?現在拇指圖像應該只移動到2-4,而在4之後它不應該再移動。 – Srinivas 2012-05-06 05:26:08

+0

限制比例爲2-4 – NeverBe 2012-05-06 09:25:40

2

你可以繼承UISlider和補充一點:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 

    CGFloat floorValue = floor(self.value); 

    if ((self.value - floorValue) > 0.5) { 

     [self setValue: floorValue + 1.0 animated: YES]; 

    } else { 

     [self setValue: floorValue animated: YES]; 
    } 
} 
+0

嗨rokjarc,你可以說我有一個比例像1-2-3-4-5 ...現在的拇指圖像應該只移動到2-4和4後它應該不會進一步移動。 – Srinivas 2012-05-06 05:10:41

+0

@sailaja:很難將代碼放在評論中(並且編輯對其他問題的回答是不可行的)。在你的情況下,我會重寫'touchesMoved:'。您可以執行最小和最大滑塊偏移量。就像'if(self.value <2.0)[self setValue:2.0]; else if(self.value> 4.0)[self setValue 4.0];' – 2012-05-06 07:48:39