2011-11-14 10 views
23

Dostosowuję aplikację UISlider do mojej aplikacji. Chcę, aby suwak był w orientacji pionowej, ale domyślny UISlider jest ustawiony poziomo. Nie mogłem znaleźć sposobu zmiany orientacji na UISlider.Jak zmienić UISlider na pionowy?

Jak zrobić pionowy suwak w XCode?

Odpowiedz

49

Domyślnie UISlider jest poziomy (-). Jeśli chcesz zrobić to w pionie (|), musisz to zrobić programowo, prawdopodobnie z CGAffineTransform. Na przykład, można dodać ten fragment do viewDidLoad lub gdziekolwiek uznają za stosowne:

CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2); 
slider.transform = trans; 
+0

Witaj w pracy, ale jeden problem Chcę, aby górna część była w dół Część jest górna Rozumiem –

+1

hardik, po prostu odwróć rotację. tj. 'CGAffineTransformMakeRotation (-M_PI_2)' – izzy

2

W przypadku korzystania układy auto:

W swojej viewDidLoad, spróbuj:

UIView *superView = self.sizeSlider.superview; 
[self.sizeSlider removeFromSuperview]; 
[self.sizeSlider removeConstraints:self.view.constraints]; 
self.sizeSlider.translatesAutoresizingMaskIntoConstraints = YES; 
self.sizeSlider.transform = CGAffineTransformMakeRotation(M_PI_2); 
[superView addSubview:self.sizeSlider]; 

Czyni nie działa z ograniczeniami, więc polega na usunięciu ograniczeń dla twojego użytkownika. Może być konieczna ręczna zmiana rozmiaru przez ustawienie jej właściwości ramki.

1

miałem problem z:

CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2); 
slider.transform = trans; 

bo miałem kod w metodzie viewDidLoad. Zamiast tego umieściłem kod w ViewDidAppear i działało dobrze.

Edycja: to nie musi być w ViewDidAppear, ViewDidLoad też działa dobrze (jeszcze lepiej). Możesz wyłączyć automatyczną zmianę rozmiaru lub ustawić ograniczenie dla obracanego suwaka, aby rozmiar nie zmieniał się po obrocie.