2013-03-15 2 views
6

팻 트랙이있는 UISlider를 만들려고합니다. 나는 this을 시도했으며 거의 ​​작동합니다. 그러나 UISlider가 처음 표시 될 때 트랙 표시 줄은 정상입니다. 터치 이벤트가 발생하는 경우에만 두껍게됩니다.처음으로 UISlider를 두껍게 만드는 방법은 무엇입니까?

- (CGRect)trackRectForBounds:(CGRect)bounds 
{ 
    return bounds; 
} 

이 어떻게 작동하는지 이해하지 않는, 그래서 그것은 완벽하게 작동하지 않는 이유를 알아낼 수 없습니다 여기

는 권장 내가 UISlider의 내 서브 클래스에 추가 된 코드입니다. 내 질문은 다음과 같습니다.

  1. 어떻게 작동합니까?
  2. 트랙을 만드는 두께를 어떻게 조절할 수 있습니까?
  3. UISlider를 처음 그릴 때 트랙에 어떻게 영향을 미치게 할 수 있습니까?

물론 제 3의 질문이 가장 중요합니다. 다른 질문은 제게 도움이 될 것입니다.

또 한가지 고려해야 할 :

사용자가 슬라이더를 접촉
[slider setThumbImage:[[UIImage alloc] init] forState:UIControlStateNormal]; 

, I는 다음과 같이 엄지 손가락을 표시 :

[slider setThumbImage:nil forState:UIControlStateNormal]; 

나는 그것을 처음 표시 될 때, 나는 엄지 손가락을 숨기 이것이 내가 trackRectForBounds 마법을 어떻게 든 방해하는지 궁금하기 때문에 이것을 언급하십시오.

감사합니다.

답변

4

질문 the docs 1. : 당신은 트랙 사각형을 사용자 정의하려면

,이 방법을 무시하고 다른 사각형을 반환 할 수 있습니다. 돌려 주어지는 구형은, 묘화 중의 트럭 및 샘 이미지의 배율을 변경하기 위해서 사용되는 입니다.

이 메서드의 기본 구현은 전달 된 사각형보다 작은 사각형을 반환합니다. 당신은 단순히 그것을 축소하는 대신 통과 한 것을 반환합니다.

질문이 크거나 작은 CGRect, 예를 들어 반환 2.

return CGRectMake(0, 0, 500, 200); 

질문 3.는 사용자 정의 이미지를 설정하지 않은 경우에만 호출되는 방법이며, 내가 생각 이미지를 nil으로 설정할 때까지는 효과가 없습니다. 이미지를 덮어 쓰려면 슬라이더 이미지를 원하는 모양으로 실제 이미지로 덮어 씁니다.

+2

아름다운 - 훌륭한 답변. 질문 1에서 "기본 구현"에 대해 어떻게 알았는지 모르겠지만 그 모든 것을 설명합니다 - 감사합니다! – Bob

+0

일반적인 stackoverflow 응답. – benjaminhallock

+0

@benjaminhallock 내 답변에 어떤 문제가 있습니까? –

관련 문제