Según mi iPad app requisito, he de mostrar la UISlider verticalmente.
Estoy usando iOS7 compilador y el despliegue de destino es iOS6.
En la placa de la historia he añadido horizontal UISlider de anchura 600 píxeles. He creado IBOutlet en mi punto de vista controlador. Yo no tenía ningún auto restricciones de diseño. Estoy usando el código de abajo para girar y hacer que sea vertical.

self.slider.transform = CGAffineTransformMakeRotation(M_PI_2);

Antes y después de la rotación estoy impresión el tamaño de fotograma de la barra que es correcto. Pero el regulador no está buscando la adecuada. Sólo mostrando sólo la perilla en el centro. ¿Cómo puedo girar la UISlider?

Vertical UISlider en iOS con autodiseño

stackoverflow.com/a/11261831/614154 Solución está trabajando para mí.

OriginalEl autor Satyam | 2013-12-24

10 Comentarios

  1. 10

    Yo tengo que trabajar de esta manera:

    En viewDidLoad: he añadido

    [self.slider removeConstraints:self.slider.constraints];
    [self.slider setTranslatesAutoresizingMaskIntoConstraints:YES];
    

    lo que se llama antes de girar el regulador con

    self.slider.transform=CGAffineTransformRotate(self.slider.transform,270.0/180*M_PI);
    

    y no hay necesidad de quitar y volver a agregar a superview.

    OriginalEl autor Kolineal

  2. 11

    Tengo un deslizador vertical trabajando con iOS 8 y Xcode 6 con sólo 3 restricciones en el guión gráfico y una línea de código. Aquí está una recortada captura de pantalla de la interfaz:

    Vertical UISlider en iOS con autodiseño

    Hay 3 restricciones entre el control deslizante vertical y la UIImageView siguiente:

    1. vSlider.Centro De Y = Vista De Imagen.Centro Y
    2. vSlider.Width = Vista De Imagen.Altura
    3. vSlider.Centro X = Vista De Imagen.Trailing + 16

    Y, por supuesto, la línea de código es:

    self.vSlider.transform = CGAffineTransformMakeRotation(-M_PI_2);
    

    Es fácil de configurar estas limitaciones en el guión gráfico en Xcode 6, pero creo que debe ser fácil de escribir estas restricciones en el código para el apoyo de iOS 7 o 6.

    OriginalEl autor bugloaf

  3. 2

    Desactive Auto-Diseño, en su ViewController, no hay ninguna otra opción en el SDK 7.0 para hacer el trabajo vertical 🙁

    OriginalEl autor Ticko

  4. 1

    Hay tantas posibles soluciones en torno a sobre poner UISlider vertical. Aquí está mi resumen para iOS7 en XCode5 con el diseño automático activada(defaultly en el guión gráfico):

    1. en viewDidLoad método add
      self.slider.transform = CGAffineTransformMakeRotation(M_PI_2);

    2. definir su diseño automático restricciones sobre el control deslizante explícitamente en guión como todo lo que te gusta

    OriginalEl autor dopcn

  5. 1

    Este es un viejo tema, pero aquí es una solución rápida con autodiseño de restricciones en el guión gráfico y nada más.

    1/es necesario añadir rotación a la IBOutlet:

    @IBOutlet weak var mySlider: UISlider! {
        didSet {
            mySlider.transform = CGAffineTransform(rotationAngle: -CGFloat.pi/2)
        } //didSet
    } //IBOutlet
    

    2/Definir en el guión de las limitaciones, teniendo en cuenta que el Regulador puede rotar alrededor de su centro.

    Por ejemplo, si desea buscar mySlider en el lado izquierdo de myView, se necesitan tres restricciones.

    1. mivista.Principal = mySlider.CenterX – 20
    2. mySlider.width = mivista.Altura (con un multiplicador de 0.8 por ejemplo)
    3. mySlider.CenterY = mivista.CenterY

    mySlider por supuesto va a aparecer de la horizontal en el guión, pero tiene el tamaño correcto, y el centro será colocado correctamente.

    OriginalEl autor KerCodex

  6. 0

    En su viewDidLoad, trate de:

    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 trabajar con restricciones, así que el truco es quitar las restricciones para su uislider.
    Usted podría tener que cambiar el tamaño de forma manual mediante la configuración de su estructura de propiedad.

    OriginalEl autor Antzi

  7. 0

    Usted no puede utilizar el guión para construir un UISlider.
    Construir UISlider por la codificación.

    slider = [[UISlider alloc] initWithFrame:CGRectMake(640, 150, 600, 400)];
    [slider.layer setAnchorPoint:CGPointMake(0.0f, 0.0f)];
    slider.transform = CGAffineTransformMakeRotation(M_PI/2);
    [self.view addSubview:slider];
    

    OriginalEl autor YuAn Shaolin Maculelê Lai

  8. 0

    Prueba esto :-

    auto.control deslizante.transformar=CGAffineTransformRotate(slideToUnlock.transformar,-90.0/180*M_PI);

    OriginalEl autor Abhishek Gupta

  9. 0

    Tratar a continuación el código Girar el UISlider en Posición Vertical..

    //To rotate the slider in Vertical Position
    CGAffineTransform sliderRotation = CGAffineTransformIdentity;
    sliderRotation = CGAffineTransformRotate(sliderRotation, -(M_PI /2));
    sliderBrightness.transform=sliderRotation;
    

    OriginalEl autor Hardik Thakkar

  10. 0

    Para mí un proceso de dos pasos funcionado mejor (la incorporación de algunas de las soluciones anteriores)

    Autodiseño de paso)
    He añadido una vista vertical en IB y utiliza el diseño automático de vincular a los vecinos de las vistas. Luego he añadido un control deslizante en la vista y simplemente enganchado hasta el centro de la vista. Luego conectó el ancho de la barra a la altura de la vista. Finalmente, el control-arrastra el control deslizante de salida a mi ViewController código (como regulador)

    Código de paso)
    A continuación, simplemente se agrega el a mi viewWillAppear (swift-code):

    let trans = CGAffineTransformMakeRotation(CGFloat(M_PI_2));
    slider.transform = trans;

    OriginalEl autor Philip De Vries

Dejar respuesta

Please enter your comment!
Please enter your name here