1

3 つのビューと 3 つのボタンがあり、各ボタンでビューを切り替えます (hidden = yes/no)

- (IBAction)switchOne:(id)sender {        
    [_firstPage setHidden:NO];
    [_secondPage setHidden:YES];
    [_thirdPage setHidden:YES];
}

- (IBAction)switchTwo:(id)sender {        
    [_firstPage setHidden:YES];
    [_secondPage setHidden:NO];
    [_thirdPage setHidden:YES];        
}

- (IBAction)switchThree:(id)sender {        
    [_firstPage setHidden:YES];
    [_secondPage setHidden:YES];
    [_thirdPage setHidden:NO];
}

ビューが非表示かどうかに応じて、ボタンの背景を設定したい。

私はこれを試しましたが、結果はありません:

if (_firstPage.hidden == NO)
{
    UIImage *buttonImage = [UIImage imageNamed:@"currentPage.png"];
    [_pageOneButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
    [self.view addSubview:_pageOneButton];

} else if (_firstPage.hidden == YES) {
    [_pageOneButton setBackgroundImage:nil forState:UIControlStateNormal];
}

_pageOneButton、ビューが非表示になっていても背景を保持します。

メニューの画像をそのまま残します:

メニューアクティブ

ポイントは、Página 2 がアクティブな場合 (hidden == NO)、Página 1 ボタンは背景なしである必要があるということです。

4

1 に答える 1

2

ここでは詳細を少し説明しますが、それまでの間、次の提案を少し試してみることができます。

まず、あなたを動かします

[self.view addSubview:_pageOneButton];

メソッドの外。たとえば、viewDidLoadメソッドでそのボタンを に追加しますsuperview

次に、その状態を(あなたがしたように、それへの参照を通じて)制御できます

// set the image
[_pageOneButton setImage:image forState:UIControlStateNormal];

// remove the image
[_pageOneButton setImage:nil forState:UIControlStateNormal];
于 2013-02-20T21:33:10.277 に答える