как изменить фон UIButton с помощью предупреждения

#iphone #ios #xcode #xcode4

#iPhone #iOS #xcode #xcode4

Вопрос:

в настоящее время я разрабатываю приложение, которое использует UIAlertview для изменения изображений кнопок. я пробовал это, но, похоже, это не работает! пожалуйста, помогите в этом вопросе! Rafee

 - (IBAction)changebackground:(id)sender {
    UIAlertView *alert = [[UIAlertView alloc] 

                      initWithTitle:@"The Title" 
                      message:@"The Message" 
                      delegate:self 
                      cancelButtonTitle:@"Cancel" 
                      otherButtonTitles:@"normal",@"for girly girls",@"for boys!", nil];

[alert show];
}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {

if (buttonIndex == 1) {

    UIImage *img = [UIImage imageNamed:@"img1.jpg"];

    [background setImage:img];

    UIImage *buttonImage = [UIImage imageNamed:@"black sharp.png"];
    [asharp setImage:buttonImage forState:UIControlStateNormal];
    [self.view addSubview:asharp];
    UIImage *buttonImage2 = [UIImage imageNamed:@"black sharp.png"];
    [csharp setImage:buttonImage2 forState:UIControlStateNormal];
    [self.view addSubview:csharp];
    UIImage *buttonImage3 = [UIImage imageNamed:@"black sharp.png"];
    [dsharp setImage:buttonImage3 forState:UIControlStateNormal];
    [self.view addSubview:dsharp];
    UIImage *buttonImage4 = [UIImage imageNamed:@"black sharp.png"];
    [fsharp setImage:buttonImage4 forState:UIControlStateNormal];
    [self.view addSubview:fsharp];
    UIImage *buttonImage5 = [UIImage imageNamed:@"black sharp.png"];
    [gsharp setImage:buttonImage5 forState:UIControlStateNormal];
    [self.view addSubview:gsharp];
    UIImage *buttonImage6 = [UIImage imageNamed:@"white key.png"];
    [middlec setImage:buttonImage6 forState:UIControlStateNormal];
    [self.view addSubview:middlec];
    UIImage *buttonImage7 = [UIImage imageNamed:@"white key.png"];
    [d setImage:buttonImage7 forState:UIControlStateNormal];
    [self.view addSubview:d];
    UIImage *buttonImage8 = [UIImage imageNamed:@"white key.png"];
    [en setImage:buttonImage8 forState:UIControlStateNormal];
    [self.view addSubview:en];
    UIImage *buttonImage9 = [UIImage imageNamed:@"white key.png"];
    [f setImage:buttonImage9 forState:UIControlStateNormal];
    [self.view addSubview:f];
    UIImage *buttonImage10 = [UIImage imageNamed:@"white key.png"];
    [g setImage:buttonImage10 forState:UIControlStateNormal];
    [self.view addSubview:g];
    UIImage *buttonImage11 = [UIImage imageNamed:@"white key.png"];
    [a setImage:buttonImage11 forState:UIControlStateNormal];
    [self.view addSubview:a];
    UIImage *buttonImage12 = [UIImage imageNamed:@"white key.png"];
    [b setImage:buttonImage12 forState:UIControlStateNormal];
    [self.view addSubview:b];


}

if (buttonIndex == 2) {

    UIImage *img = [UIImage imageNamed:@"img2.jpg"];

    [background setImage:img];

    UIImage *buttonImage = [UIImage imageNamed:@"green sharp.png"];
    [asharp setImage:buttonImage forState:UIControlStateNormal];
    [self.view addSubview:asharp];
    UIImage *buttonImage2 = [UIImage imageNamed:@"green sharp.png"];
    [csharp setImage:buttonImage2 forState:UIControlStateNormal];
    [self.view addSubview:csharp];
    UIImage *buttonImage3 = [UIImage imageNamed:@"green sharp.png"];
    [dsharp setImage:buttonImage3 forState:UIControlStateNormal];
    [self.view addSubview:dsharp];
    UIImage *buttonImage4 = [UIImage imageNamed:@"green sharp.png"];
    [fsharp setImage:buttonImage4 forState:UIControlStateNormal];
    [self.view addSubview:fsharp];
    UIImage *buttonImage5 = [UIImage imageNamed:@"green sharp.png"];
    [gsharp setImage:buttonImage5 forState:UIControlStateNormal];
    [self.view addSubview:gsharp];
    UIImage *buttonImage6 = [UIImage imageNamed:@"pink key.png"];
    [middlec setImage:buttonImage6 forState:UIControlStateNormal];
    [self.view addSubview:middlec];
    UIImage *buttonImage7 = [UIImage imageNamed:@"pink key.png"];
    [d setImage:buttonImage7 forState:UIControlStateNormal];
    [self.view addSubview:d];
    UIImage *buttonImage8 = [UIImage imageNamed:@"pink key.png"];
    [en setImage:buttonImage8 forState:UIControlStateNormal];
    [self.view addSubview:en];
    UIImage *buttonImage9 = [UIImage imageNamed:@"pink key.png"];
    [f setImage:buttonImage9 forState:UIControlStateNormal];
    [self.view addSubview:f];
    UIImage *buttonImage10 = [UIImage imageNamed:@"pink key.png"];
    [g setImage:buttonImage10 forState:UIControlStateNormal];
    [self.view addSubview:g];
    UIImage *buttonImage11 = [UIImage imageNamed:@"pink key.png"];
    [a setImage:buttonImage11 forState:UIControlStateNormal];
    [self.view addSubview:a];
    UIImage *buttonImage12 = [UIImage imageNamed:@"pink key.png"];
    [b setImage:buttonImage12 forState:UIControlStateNormal];
    [self.view addSubview:b];
}

if (buttonIndex == 3) {

    UIImage *img = [UIImage imageNamed:@"img3.jpg"];

    [background setImage:img];

    UIImage *buttonImage = [UIImage imageNamed:@"orange sharp.png"];
    [asharp setImage:buttonImage forState:UIControlStateNormal];
    [self.view addSubview:asharp];
    UIImage *buttonImage2 = [UIImage imageNamed:@"orange sharp.png"];
    [csharp setImage:buttonImage2 forState:UIControlStateNormal];
    [self.view addSubview:csharp];
    UIImage *buttonImage3 = [UIImage imageNamed:@"orange sharp.png"];
    [dsharp setImage:buttonImage3 forState:UIControlStateNormal];
    [self.view addSubview:dsharp];
    UIImage *buttonImage4 = [UIImage imageNamed:@"orange sharp.png"];
    [fsharp setImage:buttonImage4 forState:UIControlStateNormal];
    [self.view addSubview:fsharp];
    UIImage *buttonImage5 = [UIImage imageNamed:@"orange sharp.png"];
    [gsharp setImage:buttonImage5 forState:UIControlStateNormal];
    [self.view addSubview:gsharp];
    UIImage *buttonImage6 = [UIImage imageNamed:@"silver key.png"];
    [middlec setImage:buttonImage6 forState:UIControlStateNormal];
    [self.view addSubview:middlec];
    UIImage *buttonImage7 = [UIImage imageNamed:@"silver key.png"];
    [d setImage:buttonImage7 forState:UIControlStateNormal];
    [self.view addSubview:d];
    UIImage *buttonImage8 = [UIImage imageNamed:@"silver key.png"];
    [en setImage:buttonImage8 forState:UIControlStateNormal];
    [self.view addSubview:en];
    UIImage *buttonImage9 = [UIImage imageNamed:@"silver key.png"];
    [f setImage:buttonImage9 forState:UIControlStateNormal];
    [self.view addSubview:f];
    UIImage *buttonImage10 = [UIImage imageNamed:@"silver key.png"];
    [g setImage:buttonImage10 forState:UIControlStateNormal];
    [self.view addSubview:g];
    UIImage *buttonImage11 = [UIImage imageNamed:@"silver key.png"];
    [a setImage:buttonImage11 forState:UIControlStateNormal];
    [self.view addSubview:a];
    UIImage *buttonImage12 = [UIImage imageNamed:@"silver key.png"];
    [b setImage:buttonImage12 forState:UIControlStateNormal];
    [self.view addSubview:b];
}

}
  

Комментарии:

1. Как вы настраиваете UIButton? Я не верю, что вы можете менять фон, если не настроите его как пользовательский

Ответ №1:

Я тоже только что столкнулся с этим. Кнопки не могут изменять свой фон, если они не являются пользовательскими. В противном случае изменение фона на обычной кнопке аналогично изменению фона a UITableViewCell (фактическое изменение происходит при доступе contentView — но это не так с UIButton )

Итак, измените тип кнопки из сборки интерфейса на Custom или инициализируйте свою кнопку из кода, подобного этому:

 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];