0

プログラムでボタンを作成しているときに、ボタンの画像を変更しようとしています

//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];

今、メソッドでボタン画像を変更しようとしています

    -(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];;
    }
}

ボタンに触れていない間は機能しません。画像を変更しますが、画像を強調表示しません。

私がこのコードで行った間違いはありますか???

4

1 に答える 1

1

UIControlStateDisabledボタンの状態を使用してみてください。

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];

あなたの要件に役立つかもしれません.thanks.

于 2013-02-28T10:04:06.840 に答える