¿Cómo ajustar la posición de las subvistas en la pantalla cuando el dispositivo cambia su orientación?

Estoy agregando pickerview en UItableviewcontroller cuando el usuario toca la fila. Estoy usando el siguiente código para mostrarlo. [self.view.window addSubview: languagePicker];

    CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
    CGSize pickerSize = CGSizeMake(768.0, 216.0);
    CGRect startRect = CGRectMake(0.0,
                                  screenRect.origin.y + screenRect.size.height,
                                  pickerSize.width, pickerSize.height);
    self.languagePicker.frame = startRect;

    // compute the end frame
    CGRect pickerRect = CGRectMake(0.0,
                                   screenRect.origin.y + screenRect.size.height - pickerSize.height,
                                   pickerSize.width,
                                   pickerSize.height);


        self.languagePicker.frame=startRect;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationTransition:UIViewAnimationOptionTransitionNone forView:self.view.window cache:YES];
        [self.languagePicker setFrame:pickerRect];
        [UIView commitAnimations];

Parece funcionar perfectamente cuando el dispositivo está en orientación vertical, pero tan pronto como cambia la orientación, todo se ajusta solo, excepto la vista de selector agregada.

Puedo obtener la orientación del dispositivo, eliminar la vista anterior y agregar una nueva según la orientación, pero no estoy seguro de si es una buena manera de hacerlo o no. ¿Puedo hacerlo de otra manera eficaz?

Sumit

preguntado el 08 de noviembre de 11 a las 17:11

2 Respuestas

deberías configurar:

self.languagePicker.autoresizingMask

Esto ayudará a que su vista se ajuste automáticamente de acuerdo con las restricciones configuradas.

respondido 08 nov., 11:21

¿Puede darme más detalles o sugerencias para más información sobre el tamaño automático? - Slonkar

es posible que desee echar un vistazo a su publicación también: stackoverflow.com/questions/3069388/… - Saurabh Passolia

Todavía estoy luchando con esto. He revisado los enlaces que dicen usar automasking.Puse ese código allí, pero todavía no funciona ... - Slonkar

Fue un error estúpido, en lugar de poner esa vista de selector en la vista, simplemente la arrastré y la puse en xib. Ponerlo a la vista resolvió el problema.

respondido 13 nov., 11:00

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.