2012-04-25 3 views
2

사용자 정의 UISlider보기를 작성 중이거나 시도하고 있는데, 여전히 수평이지만 크기가 훨씬 큽니다. 나는 두 가지 문제가있다.UISlider 맞춤 이미지 및 엄지 손가락 높이?

1 이것은 이미지를 슬라이더에 가져 오기 위해 사용하는 코드입니다.

UIImage *minImage = [UIImage imageNamed:@"sliderMin.png"]; 
UIImage *maxImage = [UIImage imageNamed:@"sliderMax.png"]; 
UIImage *thumbImage = [UIImage imageNamed:@"sliderThumb.png"]; 

minImage = [minImage stretchableImageWithLeftCapWidth:33.0 topCapHeight:0.0]; 
maxImage = [maxImage stretchableImageWithLeftCapWidth:33.0 topCapHeight:0.0]; 
// thumbImage = [minImage stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0]; 

[_contrastSlider setMinimumTrackImage:minImage forState:UIControlStateNormal]; 
[_contrastSlider setMaximumTrackImage:maxImage forState:UIControlStateNormal]; 
[_contrastSlider setThumbImage:thumbImage forState:UIControlStateNormal]; 

minImage = nil; 
maxImage = nil; 
thumbImage = nil; 

[_contrastSlider setMinimumValue:0.0]; 
[_contrastSlider setMaximumValue:100.00]; 
[_contrastSlider setValue:25.0]; 

나는 최소, 최대, 최대 3 개의 이미지를 가지고 있습니다. 이것들은 이미지이며 장치에서 보이는 모습이며 올바르지 않습니다.

아직 이미지를 게시 할 수 없으므로 여기에 구성 요소를 보여주는 link to MYSlider.jpeg이 있습니다.

슬라이더는 엄지 오른쪽에 크림색이어야하며 분홍색이 왼쪽에 있어야합니다. 그러나 이것은 일어나지 않습니다.

그건 문제 1입니다. 문제 2는 엄지 크기가 너무 작습니다. 나는 이것을 사용하고있다 : UISlider Height Hack 엄지의 높이를 높이려고하지만, 슬프게도 키가 크지는 않다. 그래서 넓이가 아닌 넓이를 넓히고 내 핑크색 이미지가 왜 무시당하는 지 궁금해합니다.

도움 주셔서 감사합니다.

-(BOOL) beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { 
    CGRect bounds = self.bounds; 
    float thumbPercent = (self.value - self.minimumValue)/(self.maximumValue - self.minimumValue); 
    float thumbPos = THUMB_SIZE + (thumbPercent * (bounds.size.width - (2 * THUMB_SIZE))); 
    CGPoint touchPoint = [touch locationInView:self]; 
    return (touchPoint.x >= (thumbPos - EFFECTIVE_THUMB_SIZE) && touchPoint.x <= (thumbPos + EFFECTIVE_THUMB_SIZE)); 
} 

-(BOOL) pointInside:(CGPoint)point withEvent:(UIEvent*)event { 
CGRect bounds = self.bounds; 
bounds = CGRectInset(bounds, -10, -8); 
return CGRectContainsPoint(bounds, point); 

가} 감사 : 도움이된다면

, 여기 내 UISlider 서브 클래스하는 .m이다.

+0

이미지 링크가 깨졌습니다. – Asahi

답변

0

뷰로드 방법에서 내 슬라이더 값을 설정하면 문제가 발생하는 것으로 나타났습니다. 인터페이스 빌더에서 설정하고 수정했습니다. 일단 IB로 설정되면, 문제없이 필요하다면 코드에서 조정할 수 있습니다.

내 다른 문제에 대해서는 실제 장치에서 테스트하지 않기 때문에 이것이 궁금합니다. 그래서 몇 주 안에 장치에서 이해할 때까지 잠시 멈추도록하겠습니다.

+0

기기에서 테스트 중이므로 터치 영역의 원래 슬라이더 높이 문제가 남아 있으므로 해결해야합니다. 그러나 슬라이더의 중간 부분을 자연스럽게 만지는 것이 중요한 문제는 아닙니다. – mrEmpty

+0

어떻게이 문제를 해결 했습니까? @mrEmpty – jonypz

+0

나는하지는 않았지만 사용자와 함께 테스트했을 때 문제가되지 않았다. – mrEmpty