Как изменить UISlider на вертикальную?
Я настраиваю UISlider
для своего приложения. Я хочу, чтобы ползунок находился в вертикальной ориентации, но по умолчанию UISlider
находится в горизонтальной ориентации. Я не мог найти, как изменить ориентацию UISlider
.
Как создать вертикальный слайдер в XCode?
Ответы
Ответ 1
По умолчанию UISlider является горизонтальным (-). Если вы хотите сделать его вертикальным (|), тогда вы должны сделать это программно, возможно, с помощью CGAffineTransform
. Например, вы можете добавить этот фрагмент к viewDidLoad
или везде, где вы сочтете это подходящим:
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
Ответ 2
Если вы используете автоматические макеты:
В вашем представлении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.
Возможно, вам придется изменить его размер вручную, установив его свойство кадра.
Ответ 3
У меня была проблема с:
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
потому что у меня был код в методе ViewDidLoad. Вместо этого я поместил код в ViewDidAppear, и он работал нормально.
Изменить: он не обязательно должен быть в ViewDidAppear, ViewDidLoad отлично работает (даже лучше). Вы можете отключить автоматическое изменение размера или установить ограничение для ползунка, который вы вращаете, чтобы размер не изменился после поворота.