Pregunta

I'm new in iPhone development. I want to add a check box into an alert view. I'm doing tests on this alertview for the last two days, but do not get any working demo project. I want exactly this alertbox!

enter image description here

Can anyone help me?

¿Fue útil?

Solución

try this code for add checkbox in alertview.

Swift

let nameField = UIButton(frame: CGRect(x: 0.0, y: 0, width: 50, height: 50.0))
let v = UIView(frame: CGRect(x: 0, y: 0, width: 250, height: 40))
nameField.setImage(UIImage(named: "checkbox_off.png"), for: .normal)
v.addSubview(nameField)
var av = UIAlertView(title: "TEST", message: "subview", delegate: nil, cancelButtonTitle: "NO", otherButtonTitles: "YES")
av.setValue(v, forKey: "accessoryView")
av.show()

Objective C

UIButton *nameField = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0, 50, 50.0)];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 250, 40)];
[nameField setImage:[UIImage imageNamed:@"checkbox_off.png"] forState:UIControlStateNormal];
[v addSubview:nameField];
UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"TEST" message:@"subview" delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
[av setValue:v  forKey:@"accessoryView"];
[av show];

i hope this code useful for you.

Otros consejos

iOS version independent

-(void) showAlert {
    isReemeber = TRUE;
    rememberButton = [[UIButton alloc] init];
    UIView *v = [[UIView alloc] init];
    [rememberButton setImage:[UIImage imageNamed:@"checkbox-checked.png"] 
                                    forState:UIControlStateNormal];
    [rememberButton setTitle:@" Don't show me again" forState:UIControlStateNormal];
    [rememberButton addTarget:self action:@selector(toggleRememberMethod) 
                     forControlEvents:UIControlEventTouchUpInside];

    [v addSubview:rememberButton];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Confirmation" 
                                                    message:@"" 
                                                   delegate:self 
                                          cancelButtonTitle:@"Cancel" 
                                          otherButtonTitles:@"Yes", nil];

    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {

        v.frame = CGRectMake(0, 0, 250, 40);
        rememberButton.frame = CGRectMake(0.0, 0, 250, 50.0);
        [rememberButton setTitleColor:[UIColor blackColor] 
                             forState:UIControlStateNormal];
        alert.message = @"Message here";
        [alert setValue:v  forKey:@"accessoryView"];

    } else {

        v.frame = CGRectMake(0, 80, 250, 40);
        rememberButton.frame = CGRectMake(0.0, 0, 250, 40.0);
        alert.message = @"Message here\n\n\n\n";
        [alert addSubview:v];

    }
    [alert show];

}


-(void)toggleRememberMethod {
    if (isReemeber) {
        [rememberButton setImage:[UIImage imageNamed:@"checkbox.png"] 
                        forState:UIControlStateNormal];

        isReemeber = FALSE;
    } else {
        [rememberButton setImage:[UIImage imageNamed:@"checkbox-checked.png"] 
                        forState:UIControlStateNormal];

        isReemeber = TRUE;
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top