我有三个视图和三个按钮,每个按钮切换视图(隐藏=是/否)
- (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ágina2处于活动状态时(隐藏==否),Página1按钮应该没有背景。
答案 0 :(得分:2)
这里有一些细节,但在此期间你可以尝试以下建议。
首先,移动你的
[self.view addSubview:_pageOneButton];
在方法之外。例如,在viewDidLoad
方法中,您将该按钮添加到superview
。
然后你可以像
一样控制它的状态(通过对它的引用)// set the image
[_pageOneButton setImage:image forState:UIControlStateNormal];
// remove the image
[_pageOneButton setImage:nil forState:UIControlStateNormal];