所以我改變一個按鈕的圖像和一個UIImageView使用這兩個函數的圖像:的UIImage不更新上setImage按鈕IBAction爲
- (IBAction)changeButton:(id)sender {
//switch image to group if it is a badge. switch image to badge if it is a group.
if([[properties objectForKey:@"current_item"] isEqualToString:@"badge"]){
NSLog(@"reaching badge");
UIImage *imageToSet = [UIImage imageNamed:current_group_image];
[changeButtonOutlet.imageView setImage:imageToSet];
[properties setObject:@"group" forKey:@"current_item"];
} else {
if([[properties objectForKey:@"current_item"] isEqualToString:@"group"]){
NSLog(@"reaching group");
UIImage *imageToSet = [UIImage imageNamed:current_badge_image];
[changeButtonOutlet.imageView setImage:imageToSet];
[properties setObject:@"badge" forKey:@"current_item"];
}
}
[self switchBadgeImage];
}
-(void)switchBadgeImage{
if([[properties objectForKey:@"current_item"] isEqualToString:@"badge"]){
[badgeImageView setImage:[UIImage imageNamed:current_badge_image ]];
} else {
if([[properties objectForKey:@"current_item"] isEqualToString:@"group"]){
[badgeImageView setImage:[UIImage imageNamed:current_group_image ]];
}
}
}
然而,圖像不更新。如果我將changeButton IBAction發送給垃圾郵件,我有時會很快看到圖像發生變化,但它總是彈回到默認值(僅用於按鈕)。
這裏是我的控制檯日誌告訴我,當我反覆按按鈕:
2012-08-24 12:20:52.414 MyApp[1448:707] reaching group
2012-08-24 12:20:52.559 MyApp[1448:707] reaching badge
2012-08-24 12:20:52.687 MyApp[1448:707] reaching group
2012-08-24 12:20:52.846 MyApp[1448:707] reaching badge
2012-08-24 12:20:52.976 MyApp[1448:707] reaching group
2012-08-24 12:20:53.117 MyApp[1448:707] reaching badge
2012-08-24 12:20:53.262 MyApp[1448:707] reaching group
2012-08-24 12:20:53.348 MyApp[1448:707] reaching badge
我在做什麼錯?多謝你們!
編輯:固定它!這裏是更新後的代碼:
- (void)switchBadgeImage {NSLog(@「current group image:%@」,current_group_image); NSLog(@「當前徽章圖像:%@」,current_badge_image);
current_item = [properties objectForKey:@"current_item"];
if([current_item isEqualToString:@"badge"]){
NSLog(@"current item is equal to badge");
[badgeImage setImage:[UIImage imageNamed:current_badge_image ]];
} else {
if([current_item isEqualToString:@"group"]){
NSLog(@"current item is equal to group");
[badgeImage setImage:[UIImage imageNamed:current_group_image ]];
}
}
}
- (IBAction)changeButton:(id)sender {
//switch image to group if it is a badge. switch image to badge if it is a group.
if([[properties objectForKey:@"current_item"] isEqualToString:@"badge"]){
NSLog(@"reaching badge");
UIImage *imageToSet = [UIImage imageNamed:current_badge_image];
[changeButtonOutlet setImage:imageToSet forState:UIControlStateNormal];
[properties setObject:@"group" forKey:@"current_item"];
[properties synchronize];
} else {
if([[properties objectForKey:@"current_item"] isEqualToString:@"group"]){
NSLog(@"reaching group");
UIImage *imageToSet = [UIImage imageNamed:current_group_image];
[changeButtonOutlet setImage:imageToSet forState:UIControlStateNormal];
[properties setObject:@"badge" forKey:@"current_item"];
[properties synchronize];
}
}
[self switchBadgeImage];
}
有實際的一些問題。首先我是以錯誤的方式切換圖像。其次,我沒有同步UserDefaults。將當前項目保存到UserDefaults後,我也沒有更新current_item變量。
感謝您的幫助和如此迅速!
「current_badge_image」在哪裏定義? –