2015-04-07 6 views
0

Фоновое изображение уже установлено в проекте Xcode, но при нажатии кнопки оно изменяется, поэтому я хочу проверить, не совпадает ли фоновое изображение 80red.png с фоновым фоном кнопки.Сравните изображение background

-(IBAction)buttonChange:(id)sender { 

    redImage = [UIImage imageNamed:@"80red.png”]; 

    UIImage *ButtonColour = [sender backgroundImageForState:UIControlStateNormal];  

    NSData *ButtonColourData = UIImagePNGRepresentation(ButtonColour); 
    NSData *redImageData = UIImagePNGRepresentation(redImage); 

    if ([ButtonColourData isEqual: redImageData]) { 

     // if images are the same 
     NSLog(@"Images are the same");  
    }  
} 

Я не понимаю, почему мой код не работает.

ответ

0

Ваш код не работает, потому что у вас есть ошибки в синтаксисе кода.

redImage не ссылаются на объект класса UIImage - Вы должны были написать UIImage *redImage = [UIImage imageNamed:@"80red.png"];

Далее:

Когда вы делаете сравнение даты изображений, вы сравнивая размер изображения, но различные изображения могут быть тот же размер. Лучше сравните изображения с их содержанием.

Я сделал вид, что вашей ситуации, и вот что у меня получилось:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// Override point for customization after application launch. 


UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 2, 2)]; 
[button setBackgroundImage:[UIImage imageNamed:@"80red.png"] forState:UIControlStateNormal]; 

[self buttonChange:button]; 

return YES; 

}

- (IBAction) buttonChange: (идентификатор) отправитель {

UIImage *redImage = [UIImage imageNamed:@"80red.png"]; 

UIImage *ButtonColour = [sender backgroundImageForState:UIControlStateNormal]; 

//NSData *ButtonColourData = UIImagePNGRepresentation(ButtonColour); 
//NSData *redImageData = UIImagePNGRepresentation(redImage); 

if ([redImage isEqual: ButtonColour]) { 

    // if images are the same 
    NSLog(@"Images are the same"); 

} 

}

Надеюсь, мой совет поможет вам.

P.S. Извините за мой английский =)

+0

Получил это, спасибо большое (: – user2643679

+0

@ user2643679, если мой совет помог вам, пожалуйста, понравится :) – AktuBuct

Смежные вопросы