0

我可以更改图像,但是当我返回此视图时,它会显示与 UIControlStateNormal 相同的图像,从我在 UIControlStateSelected 时开始。

-(IBAction) favorateImage:(UIButton*)sender{

    AppDelegate *obj=[[UIApplication sharedApplication]delegate];

    if ([sender isSelected]) {

        [sender setImage:[UIImage imageNamed:@"favrtes_uncheck.png"] forState:UIControlStateNormal];
        [sender setSelected:NO];

        NSMutableArray* array = [[[NSUserDefaults standardUserDefaults] objectForKey:@"favoriteItems"] mutableCopy];
        [array removeObject:[NSNumber numberWithInt:self.number]];

        [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"favoriteItems"];

        NSLog(@"%@", array);

        obj.country_main= array;
    } else 
    {
        [sender setImage:[UIImage imageNamed:@"favrtes_detail.png"] forState:UIControlStateSelected];
        [sender setSelected:YES];

        NSMutableArray* array= [[[NSUserDefaults standardUserDefaults] objectForKey:@"favoriteItems"] mutableCopy];

        [array addObject:[NSNumber numberWithInt:self.number]];

        [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"favoriteItems"];

        NSLog(@"%@", array);

        obj.country_main= array;
    }
}
4

1 回答 1

0

您可以为此使用 UIControlStateHighlighted。

[sender setImage:[UIImage imageNamed:@"favrtes_detail.png"] forState:UIControlStateHighlighted];

您还可以通过将图像设置为突出显示状态来从界面生成器中进行设置。

于 2012-06-01T09:40:27.617 回答