iOS no puede cambiar el marco de UIButton

Actualmente estoy atrapado con un problema muy extraño. Estoy usando iOS 6 y Xcode 4.5. Tengo un storyboard con un UIViewController y un UIButton en él. Hice un enchufe débil de UIButton a mi file .h.

En el file .m quiero cambiar el marco del button pero no pasa nada. Sin embargo, tengo un UIImageView creado y conectado de la misma manera que el UIButton pero puedo cambiar el marco de UIImageView sin ningún problema.

Cuando hago esto:

 NSLog(@"%@", button) 

Obtengo este resultado:

 <UIButton: 0xa185a40; frame = (191 330; 73 44); opaque = NO; autoresize = TM+BM; layer = <CALayer: 0xa185640>> 

Y estas son las partes relevantes de mi código:

 -(void)viewDidLayoutSubviews{ [self addStampGrid]; } -(void)addStampGrid { // ... [_button setFrame:CGRectMake(10,10,10,10)]; } 

Tuve el mismo problema extraño con XCode 4.5 y iOS 6 como objective de implementación. Sin embargo, no estoy usando el tablero de historias. Logré resolverlo deshabilitando la opción "Usar Autolayout" en el Interface Builder. (En el inspector de files-> Documento del generador de interfaces.

Espero que esto ayude

Puede cambiar el marco de su UIButton cambiando el marco de la capa de UIButton

  [self.button.layer setFrame:] 

importe el marco de QuartzCore en el encabezado de su class antes de usar esto. Esto también funcionará con el layout automático.

Puedes usar esto

 [_button setTranslatesAutoresizingMaskIntoConstraints:YES]; 

después de esto, puede establecer el marco de su button.

Puede dar algunas advertencias en el logging de restricciones, ya que esta propiedad anula las restricciones que dio en la reproducción automática.

Elimine la vista de la vista de supervisión y, después del cuadro de configuration, agregue esta vista nuevamente como una subvista. Espero que esto funcione bien …

// Eliminar la vista de la vista de supervisión

 UIView *view = yourButton.superview; [yourButton removeFromSuperview]; 

// cambiar el marco de UIButton

 CGRect bounds = view.bounds; yourButton.center = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds)); 

// agrega esta vista nuevamente como una subview

 [view addSubview:yourButton];