Amir iDev
Amir iDev

Reputation: 1257

How to change the Image of Button without Touching it

I am trying to change the image of button while i have created button programmatically

//Create a Buttonfav
UIImage *imagefavNormal   = [UIImage imageNamed:@"favtop_unselect_icon2.png"];

btnFav = [UIButton buttonWithType:UIButtonTypeCustom];
[btnFav showsTouchWhenHighlighted];
btnFav.adjustsImageWhenHighlighted = YES;
[btnFav setAdjustsImageWhenDisabled:YES];
[btnFav setHighlighted:YES];

btnFav.bounds = CGRectMake( 0, 0, imagefavNormal.size.width, imagefavNormal.size.height );

btnFav.userInteractionEnabled = NO;

[btnFav setImage:imagefavNormal forState:UIControlStateNormal];
[btnFav addTarget:self action:@selector(btnFavPressed:) forControlEvents:UIControlEventTouchUpInside];

//Create UIBarButtonItem = barButtonfav
barButtonfav = [[UIBarButtonItem alloc] initWithCustomView:(UIButton*)btnFav];

Now i am trying to change the button image with method

    -(void) toggleFavoriteButtonState:(BOOL) isEnable {

    UIImage *imagefavNormal   = [UIImage imageNamed:@"favtop_unselect_icon2.png"];
    UIImage *imagefavSelected = [UIImage imageNamed:@"favtop_select_icon2.png"];

    if (isEnable) {
        [btnFav setImage:imagefavSelected forState:UIControlStateNormal];
    }
    else {
        [btnFav setImage:imagefavNormal forState:UIControlStateNormal];;
    }
}

its not working while i have not touched the button. it changes the image but not hilighted the image.

Any mistake i have done in this code???

Upvotes: 0

Views: 174

Answers (1)

Nookaraju
Nookaraju

Reputation: 1668

try to use UIControlStateDisabled button state.

UIImage *imagefavNormal   = [UIImage imageNamed:@"favtop_unselect_icon2.png"];
UIImage *imagefavSelected = [UIImage imageNamed:@"favtop_select_icon2.png"];
[btnFav setImage:imagefavSelected forState:UIControlStateDisabled]
[btnFav setImage:imagefavNormal forState:UIControlStateNormal];

may help for your requirement.thanks.

Upvotes: 1

Related Questions