2011-12-05 9 views
5

He encontrado mucha información sobre el ajuste automático, pero ninguno ha podido resolver mi problema. Tengo un ViewController (RAViewController) que llama a una vista en su método loadView así:¿Cómo funciona la máscara de aumento automático?

- (void)loadView 
{ 
    // Set Navigation Bar Title 
    self.navigationItem.title = @"RA"; 

    // Add Background view 
    self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    // Add RAView 
    RAView *rAView = [[RAView alloc] initWithFrame:self.view.frame Controller:self]; 
    [self.view rAView]; 
} 

La vista que llama (RAView) tiene el siguiente aspecto:

- (id)initWithFrame:(CGRect)frame Controller:(RAViewController *)Controller 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 
     self.autoresizesSubviews = YES; 
     self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
     self.backgroundColor = [[UIColor alloc] initWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]; 

     controller = Controller; 

     // Draw Architecture View 
     [self drawArchitectureView]; 
    } 
return self; 
} 

-(void)drawArchitectureView { 
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, self.frame.size.width - 20, 50); 

    [button setBackgroundColor:[UIColor grayColor]]; 
    [button setTitle:@"Overview" forState:UIControlStateNormal]; 

    [self addSubview:button]; 
} 

Por alguna razón no puedo obtener el aumento automático de la máscara para redimensionar el ancho del botón cuando el dispositivo es horizontal. Cualquier ayuda es muy apreciada.

+1

Creo que necesita para establecer el autoresizingMask en el propio UIButton. –

+0

Intenté eso. El botón terminó moviéndose de la pantalla, que no es lo que esperaba, lo que significa que realmente no entiendo cómo funciona. Tampoco es el punto de 'self.autoresizesSubviews = YES;' así que no tengo que hacer eso? –

+0

¿Qué intentaste al configurar los botones autoresizeMask? ¿Probaste UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin? –

Respuesta

3

Si desea que se mantenga la misma altura, pero sólo se mantenga totalmente centrado, 10.0 de la izquierda y la derecha, poner en práctica:

-(void)drawArchitectureView { 
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, self.frame.size.width - 20, 50); 

    button.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin; 

    [button setBackgroundColor:[UIColor grayColor]]; 
    [button setTitle:@"Overview" forState:UIControlStateNormal]; 

    [self addSubview:button]; 
} 
Cuestiones relacionadas