Chcę umieścić w pionie UISlider
. Nie mam pojęcia o tym, więc proszę pomóżcie mi w tym.jak ustawić UISlider w pionie?
Odpowiedz
Trzeba to zrobić programowo. Zakładając, że UISlider jest zobowiązany do zmiennej o nazwie slider
dodać ten kod w metodzie viewDidLoad w ViewController.m:
- (void)viewDidLoad {
[super viewDidLoad];
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI * 0.5);
slider.transform = trans;
}
Daj mi znać, jeśli potrzebujesz więcej pomocy w tej sprawie ..
Powoduje to umieszczenie końca minimalnej wartości na górze. Użyj M_PI * -0.5, aby umieścić końcówkę minimumValue na dole. –
Przydatna uwaga. To najczęstszy scenariusz. Dzięki chrispix. – ravinsp
Możesz także użyć -M_PI_2 –
Od Xcode 4.2, możesz rodzaj zrobić to samo w konstruktorze interfejsów.
- utworzyć suwak
- pokazać "Identity Inspector"
- Dodaj "Użytkownika Runtime atrybut"
- Ustaw ścieżkę klucza do "layer.transform.rotation.z", typem
"Łańcuch" ("Numer"nie zezwoli na wartości zmiennoprzecinkowe)(możliwe od Xcode 5) i wartość do "-1.570795" (-π/2).
Niestety, nadal będzie wyglądać poziomo w Kreatorze interfejsów.
Ale można ustawić środek i nie trzeba tworzyć niestandardowej klasy, więc w niektórych przypadkach może być przydatny. Efekt jest taki sam jak kod ravinsp.
Właściwie możesz umieścić spację w Number za pomocą przecinka (zamiast kropki). – user500
Znacznie czystszy niż akceptowana, oparta na kodzie odpowiedź, IMHO. – user1021430
W przypadku pracy z układami 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];
To nie działa z ograniczeniami, więc podstęp jest usunięcie ograniczeń dla uislider. Może być konieczna ręczna zmiana rozmiaru przez ustawienie jej właściwości ramki.
Swift 3:
slider.transform = slider.transform.rotated(by: CGFloat(0.5 * Float.pi))
// Zastosowanie 1,5 odwrócić cień suwaka jeśli chcesz
jest to duplikat to pytanie zadawane wczoraj: http://stackoverflow.com/questions/ 2369926/how-can-i-make-a-vertical-uislider –