objective-c ios xcode ipad uislider

objective c - ¿Cómo cambiar el UISlider a Vertical?



uistepper (3)

En caso de que esté utilizando diseños automáticos:

En su viewDidLoad, intente:

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

No funciona con restricciones, por lo que el truco es eliminar las restricciones para su uislider. Es posible que tenga que cambiar su tamaño manualmente estableciendo su propiedad de marco.

Estoy personalizando un UISlider para mi aplicación. Quiero que el control deslizante esté en orientación vertical, pero el UISlider predeterminado está en orientación horizontal. No pude encontrar cómo cambiar la orientación de un UISlider .

¿Cómo puedo hacer un control deslizante vertical en XCode?


Por defecto, un UISlider es horizontal (-). Si desea hacerlo vertical (|), debe hacerlo mediante programación, probablemente con un CGAffineTransform . Por ejemplo, puede agregar este fragmento de viewDidLoad a viewDidLoad o donde lo considere apropiado:

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


Tuve un problema con:

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

Porque tenía el código en el método ViewDidLoad. En cambio, puse el código en ViewDidAppear y funcionó bien.

Edición: no tiene que estar en ViewDidAppear, ViewDidLoad también funciona bien (incluso mejor). Puede desactivar el cambio de tamaño automático o establecer una restricción para el control deslizante que está girando para que el tamaño no cambie después de la rotación.