2012-02-23 2 views
1

UISlider0, 1, 2 및 3에 4 점이 있습니다. 엄지 위치가 0-1 일 때 0으로 되돌아 가야하지만 탄성 효과가 있어야합니다. 1-2, 2-3과 비슷합니다. 이 구현은 내 응용 프로그램에서 우위를 줄 것이다.iPhone의 UISlider에 탄력 효과

나는 탄력적 인 효과를 발휘하여 시험해 보았습니다. 그러나 그것은 좋지 않습니다.

답변

3

은 "터치 업 내부"에서 작업을 보낼 슬라이더에게 이벤트 (UIControlEventTouchUpInside). 이 방법에 액션까지 후크 : 그건 당신이 정말 원하는 거라면 당신은 truncf 대신 roundf을 사용할 수 있습니다

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

.

+0

Wao .. !! 경이를 했습니까? 고마워 롭 :) – Nitish

+0

+1 : 우아한! :) –

+0

안녕 마크로 마요네, 내가 1-2-3-4-5와 같은 척도를 가지고 있다고 말할 수 있을까요 ... 이제 엄지 이미지는 2-4로 이동해야하며 4 이후에는 움직이지 않아야합니다. 더욱이. – Srinivas

2

바인딩 인터페이스 빌더에서 변경 슬라이더 값이 방법은

-(IBAction)sliderChanged:(id)sender { 

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

이것은 내가 시도한 것입니다 :) 이것은 탄성 효과를주지 않습니다. – Nitish

+0

안녕하세요 NeverBe, 1-2-3-4-5와 같은 척도가 있습니다 ... 이제 엄지 손가락 이미지는 2-4로만 이동해야하며 4 이후에는 더 이상 움직이지 않아야합니다. – Srinivas

+0

스케일을 2-4로 제한 – NeverBe

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

Hi rokjarc, 1-2-3-4-5와 같은 척도가 있다고 말할 수 있습니까? 이제 엄지 손가락 이미지는 2-4로 이동해야하고 4 이후에는 shouldn해야합니다. 더 이상 움직이지 마라. – Srinivas

+0

@sailaja : 주석에 코드를 넣는 것은 어렵습니다 (다른 질문에 대한 편집 대답은 no-go입니다). 귀하의 경우에는'touchesMoved :'를 오버라이드합니다. 최소 및 최대 슬라이더 간격 띄우기를 적용 할 수 있습니다. 'if (self.value <2.0) [self setValue : 2.0]; else if (self.value> 4.0) [self setValue 4.0]; ' –