当我以编程方式创建按钮时,我正在尝试更改按钮的图像
//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];;
}
}
当我没有触摸按钮时它不起作用。它改变了图像但没有突出显示图像。
我在这段代码中犯了什么错误???
最佳答案
尝试使用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];
可能对您的要求有所帮助。谢谢。
关于ios - 如何在不触摸按钮的情况下更改按钮的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132271/