Problema con la orientación del dispositivo y UIView durante el inicio

Estoy trabajando en un proyecto en el que cuando el usuario presiona un botón se reproduce un video, tengo que programar esta aplicación para todas las orientaciones. He agregado imágenes como fondo para los botones dada la posición de esos botones en función del tamaño de la vista de supervisión de esta manera:

button1.frame = CGRectMake(0.15 * (self.view.frame.size.width),0.15 * (self.view.frame.size.height), 0.2 * (self.view.frame.size.width), 0.2 * (self.view.frame.size.height));

Cuando inicio la aplicación en vertical, la vista está bien y también cuando la giro funciona bien:

Pero si comienzo mi aplicación en modo horizontal, muestra una vista como esta:

He usado mucho código para cambiar el tamaño de las vistas y subvistas:

-(void) viewDidLoad
{

...
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin |
    UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
    UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;

[self.view setAutoresizesSubviews:YES];

button1.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin |
    UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
    UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
...

}

y en didRotateFromInterfaceOrientation () y willRotateToInterfaceOrientation ():

...
    self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin |
        UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
        UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;

    [self.view setAutoresizesSubviews:YES];

    button1.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin |
        UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
        UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
    ...

También especifiqué SÍ para devolución en shouldAutoRotate (). ¿Qué me falta aquí? Cualquier ayuda será apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta