2010-02-02 9 views
9

Czy ktoś wie o wersji kontrolki iPhone UISlider z dwoma kciukami? Potrzebuję kontroli, która pozwoli określić zakres wartości. Dokumentacja interfejsu API UISlider sugerowałaby, że nie jest to możliwe ze standardową kontrolą, więc zastanawiałem się, czy ktoś ma na to rozwiązanie (lub sam to rozwiązał).iPhone UISlider z dwoma kciukami/wskaźnikami?

Odpowiedz

-1

Nie jestem świadomy aktualnego (tj. Wciąż w fazie rozwoju), ale prawdopodobnie można go uzyskać, patrząc na źródło BWToolkit (http://brandonwalkin.com/bwtoolkit/).

Istnieje implementacja suwaka w stylu iTunes, którą prawdopodobnie można rozszerzyć.

Posiada licencję BSD, a źródło jest dostępne od Bitbucket.

+0

BWToolkit jest przeznaczony dla komputerów Mac, a nie dla iPhone'a. –

7

Oto suwak Zakres Właśnie gotowane

http://github.com/cmezak/CMRangeSlider

+0

Witam, sprawdziłem twój kod i chcę go przenieść na urządzenie i zobaczyć, jak działa. Czy powinienem używać tylko RangeSlider.h i RangeSlider.m? Czy mogę je zintegrować z moją aplikacją i zobaczyć, jak to działa? – Namratha

+0

Nie można skompilować Twojego kodu. Brakujące implementacje obrazu set (void) setSuperRangeTrackImage: (UIImage *); ◦ (void) setSubRangeTrackImage: (UIImage *) obraz; Proszę pomóż. – Namratha

+2

Eek, przepraszam za to. po prostu pchnął kilka zmian w github, które to naprawiają. – CharlieMezak

3

miałem ten problem zbyt. Sposób, w jaki to rozwiązałem, był trochę hackem, ale prostszy dla takich noobów jak ja!

Położyłem dwa suwaki jeden na drugim. Wykonano ścieżkę jednego niewidocznego za pomocą przezroczystego pliku .png. Następnie utworzyłem metodę sliderReleased: metodę, którą połączyłem z dotykowym wewnątrz zdarzenia w konstruktorze interfejsów, który przełącza stan userInteractionEnabled: stanu każdego suwaka.

Oznacza to, że możesz ustawić tylko jeden suwak naraz i musisz dotknąć jednego, zanim ustawisz drugi, ale dla moich celów wykonuje on to zadanie.

Połączyłem oba suwaki "touch up inside" z tą metodą i ustawiam znaczniki na 1 i 2 i połączyłem zmienione zdarzenie z konkretnymi metodami, jak normalnie.

-(IBAction) onReleaseBP: (id) sender { 
if ([sender tag]==1) { 
    [diastolicSld setUserInteractionEnabled:NO]; 
    [systolicSld setUserInteractionEnabled:YES];  
} 
else { 
    [systolicSld setUserInteractionEnabled:NO]; 
    [diastolicSld setUserInteractionEnabled:YES]; 
} 
5

Jeśli nadal jesteś zainteresowany, to moja implementacja. Robię to dobrze udokumentowane, aby każdy mógł zacząć z niego korzystać z łatwością.

https://github.com/fcy/fancy-ios/tree/master/src/ui/range-slider

Działa z iOS 5+

+0

Ta strona już nie istnieje – ingenspor

+0

Witam ingespor, właśnie zaktualizowałem link, aby wskazać prawidłową lokalizację. –

+0

brak dokumentów? – Ccr

0

Oto moje rozwiązanie. Jedną z zalet w porównaniu z innymi kontrolerami z podwójnym suwakiem jest to, że kopalnia obsługuje zarówno konfigurację sterowania w kodzie, jak iw narzędziu do tworzenia interfejsów za pomocą funkcji IBDesignable/IBInspectable.

https://github.com/vermont42/JFADoubleSlider