1

我有三个视图和三个按钮,每个按钮切换视图(隐藏 = 是/否)

- (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 处于活动状态(隐藏 == 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 回答