문제

UISLIDER의 시각적 모양을 사용자 정의하려면 썸 및 트랙 이미지를 설정할 수 있습니다. 트랙 이미지의 일부는 적절한 상태로 늘어납니다. 문서에서 :

신축성 영역은 두 개의 엔드 캡 영역 사이에 있습니다. 엔드 캡은 그대로 유지되고 스트레칭되지 않은 이미지의 부분을 정의합니다. 신축성 영역은 이미지를 더 길게 보이도록 복제 할 수있는 엔드 캡 사이의 1 포인트 넓은 면적입니다.

이제 제가 가진 문제는 스트레치 가능한 지역의 너비가 1 점 이상이어야한다는 것입니다. (패턴입니다) 불행히도 1 포인트 너비는 SDK에서 하드 코딩 된 것 같습니다.

이 문제를 해결하는 방법이있는 사람이 있습니까? 아니면 이것을 위해 처음부터 내 슬라이더를 써야합니까?

도움이 되었습니까?

해결책

나는 당신이 그렇게하기 위해 자신의 슬라이더를 써야한다고 생각합니다. 스트레치 가능한 영역에 대한 UISLIDER의 행동을 바꾸는 (공개) API가없는 것 같습니다.

다른 팁

투명한 이미지를 트랙 이미지로 사용하고 아래에 uiimageview를 아래에 넣으십시오 :)

나는 그것이 늦은 대답이라는 것을 안다.

그러나 나는 다음과 같이 문제를 해결했다.

4는 PNG 파일의 라운드 캡의 너비입니다.

UIImage *minimum = [UIImage imageNamed:@"slider_minimum.png"];
[slider setMinimumTrackImage:[minimum stretchableImageWithLeftCapWidth:4 topCapHeight:0]
                      forState:UIControlStateNormal];

패턴을 사전 렌더링하여 필요한만큼 넓게 만들 수 있습니다.

StretchableImage를 사용하여 이미지를 초기화해야합니다. LeftCapWidth 및 TopCapeight는 이미지 개체의 읽기 전용 속성이지만 해당 기능을 사용하여 설정할 수 있습니다. 왼쪽과 오른쪽 캡의 크기가 같고 상단과 하단도 동일하기 때문에 왼쪽과 상단 만 설정합니다. 따라서 왼쪽 크기가 5 픽셀의 커스텀 슬라이더 트랙을 사용하려면 높이가 어디에 있든 11 픽셀의 이미지가 있어야합니다. 그리고 오른쪽에 5 개 더. 그것과 함께 연주하지 않았기 때문에, 나는 0보다 큰 TopCapeight를 사용하는 것이 예상대로 작동하는지 모르겠지만, 그것이 많은 문제를 일으키지 않을 것이라고 생각합니다.

나는 내 UISLIDER 뒤에 패턴을 원했다. 엄지 손가락의 양쪽에 달라질 필요가 없기 때문에 두 이미지를 모두 nil로 설정하고 슬라이더 아래에 뷰를 추가했습니다. 위치를 기반으로 변경해야한다면 더 어려울 것입니다.

사용자 정의 UISLIDER를 만들려면 여러 가지 방법이 있습니다. 원하는 사용자 정의에 따라 다음과 같이 Uislider를 사용자 정의하도록 설정할 수있는 기본 속성이 있습니다. SetThumbimage : Forstate : SetMinimumTrackImage : Forstate : SetMaximumTrackImage : Forstate : 추가 사용자 정의를 원한다면 아래 링크를 참조하십시오.https://medium.com/@0209neha/creating-a-custom-uislider-7756bf898832#.o1l4qhymo https://github.com/0209neha/exploringslider

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top