Así que estoy tratando de insertar un botón que se puede alternar (¿es una palabra?) "No mostrar esto otra vez" dentro de un UIAlertView, pero me estoy metiendo en algunos problemas que puedo parece moverse.Cómo crear un UIButton personalizado dentro de UIAlertView
Aquí está mi código no trabaja hasta ahora ...
EDITADO: He añadido el método del botón, e hizo algunos cambios en el código original. Ahora obtengo el botón para reaccionar a la prensa pero el resultado es un bloqueo. ¿Alguna ayuda?
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"disclaimer"]){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"DISCLAIMER"
message:@"This program is a blah blah"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"I Agree", nil];
UILabel *alertLabel = [[UILabel alloc] initWithFrame:CGRectMake(30, 230, 260, 50)];
alertLabel.backgroundColor = [UIColor clearColor];
alertLabel.textColor = [UIColor whiteColor];
alertLabel.text = @"Do not show again";
[alert addSubview:alertLabel];
[alertLabel release];
//declared alertCheckboxButton in the header due to errors I was getting when referring to the button in the button's method below
alertCheckboxButton = [UIButton buttonWithType:UIButtonTypeCustom];
alertCheckboxButton.frame = CGRectMake(200, 247, 16, 16);
alertCheckboxButton.backgroundColor = [UIColor clearColor];
UIImage *alertButtonImageNormal = [UIImage imageNamed:@"checkbox.png"];
UIImage *alertButtonImagePressed = [UIImage imageNamed:@"checkbox-pressed.png"];
UIImage *alertButtonImageChecked = [UIImage imageNamed:@"checkbox-checked.png"];
[alertCheckboxButton setImage:alertButtonImageNormal forState:UIControlStateNormal];
[alertCheckboxButton setImage:alertButtonImagePressed forState:UIControlStateHighlighted];
[alertCheckboxButton setImage:alertButtonImageChecked forState:UIControlStateSelected];
[alertCheckboxButton addTarget:self action:@selector(alertCheckboxButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
//made the button a subview of alert rather than alertLabel
[alert addSubview:alertCheckboxButton];
[alert show];
//moved alertCheckboxButton release to (void)dealloc
[alert release];
}
-(void)alertCheckboxButtonClicked{
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"disclaimer"]){
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"disclaimer"];
alertCheckboxButton.selected = YES;
}else {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"disclaimer"];
alertCheckboxButton.selected = NO;
}
}
¿Cómo cambio el estado del botón? EN mi código, no pasa nada si hago clic en él, es decir, no veo los png diferentes. Solo veo la misma imagen de control o normal. Sé cómo hacer esto usando IB, pero no sé cómo cambiar programáticamente el estado del botón. – Sam