Error de diseño automático
Tuve un problema similar aeste cartel. Y utilicé la sugerencia de jrturton para mover el código para personalizar los botones aviewDidLayoutSubviews
. Estaba funcionando bien hasta que recibí este error:
'NSInternalInconsistencyException', motivo: 'El diseño automático sigue siendo necesario después de enviar -viewDidLayoutSubviews al controlador de vista. La implementación de ViewController necesita enviar -layoutSubviews a la vista para invocar el diseño automático. '
No tengo ni idea de gráficos, y lo único que se me ocurrió fue poner[self.view layoutSubviews];
Pero eso no solucionó nada. Funcionó cuando desactivé "Diseño automático" en mi Guión gráfico, pero eso cambió las dimensiones de mis botones, y me preguntaba si había otra forma de solucionarlo.
Código:
-(void)viewDidLayoutSubviews {
NSArray *arrayOfButtons = [NSArray arrayWithObjects:self.decimalButton, self.buttonOne, self.buttonTwo, self.buttonThree, nil];
for (UIButton *button in arrayOfButtons) {
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
button.layer.borderWidth = 0.25f;
button.layer.borderColor = [[UIColor grayColor] CGColor];
CAGradientLayer *btnGradient = [CAGradientLayer layer];
btnGradient.frame = button.bounds;
btnGradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:122.0f / 255.0f green:188.0f / 255.0f blue:255.0f / 255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:96.0f / 255.0f green:171.0f / 255.0f blue:248.0f / 255.0f alpha:1.0f] CGColor],
nil];
[button.layer insertSublayer:btnGradient atIndex:0];
}
}