Как изменить UISlider на вертикальный? - PullRequest
23 голосов
/ 14 ноября 2011

Я настраиваю UISlider для своего приложения.Я хочу, чтобы ползунок был в вертикальной ориентации, но по умолчанию UISlider - в горизонтальной ориентации.Я не мог найти, как изменить ориентацию UISlider.

Как сделать вертикальный слайдер в XCode?

Ответы [ 3 ]

49 голосов
/ 14 ноября 2011

По умолчанию UISlider расположен горизонтально (-).Если вы хотите сделать его вертикальным (|), то вы должны сделать это программно, вероятно, с CGAffineTransform.Например, вы можете добавить этот фрагмент к viewDidLoad или где вы считаете нужным:

CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
2 голосов
/ 11 мая 2014

У меня была проблема с:

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

, потому что у меня был код в методе ViewDidLoad.Вместо этого я поместил код в ViewDidAppear, и он работал нормально.

Редактировать: это не обязательно должно быть в ViewDidAppear, ViewDidLoad тоже работает хорошо (даже лучше).Вы можете отключить автоматическое изменение размера или установить ограничение для вращающегося ползунка, чтобы размер не изменялся после поворота.

2 голосов
/ 06 марта 2014

Если вы используете автоматические макеты:

В вашем представленииDidLoad попробуйте:

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];

Он не работает с ограничениями, поэтому хитрость заключается в том, чтобы удалить ограничения для вашего uislider. Возможно, вам придется изменить его размер вручную, установив его свойство frame.

...