如何在不触摸的情况下更改按钮的图像

Posted

技术标签:

【中文标题】如何在不触摸的情况下更改按钮的图像【英文标题】:How to change the Image of Button without Touching it 【发布时间】:2013-02-28 09:47:34 【问题描述】:

当我以编程方式创建按钮时,我正在尝试更改按钮的图像

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

当我没有触摸按钮时它不起作用。它会更改图像但不会突出显示图像。

我在这段代码中犯了什么错误???

【问题讨论】:

您可以为此使用 UIControlStateHighlighted。 [myButton setImage:[UIImage imageNamed:@"enter-hover.png"] forState:UIControlStateHighlighted];您还可以通过将图像设置为突出显示状态来从界面生成器中进行设置。 我没有触摸按钮。我从花药控制器打来电话。 [Self.mycontroller toggleFavoriteButtonState:NO]; 【参考方案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];

可能对您的要求有所帮助。谢谢。

【讨论】:

以上是关于如何在不触摸的情况下更改按钮的图像的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 如何在不调整大小和重新定位按钮视图的情况下更改按钮图像

如何在不更改按钮字体的情况下更改 TextArea 的字体?

触摸按钮时如何更改 UIButton 图像

如何在不更改颜色的情况下禁用 Vuetify 按钮

如何在不影响子元素的情况下更改背景图像的不透明度?

如何在不向它们提供 ID 的情况下更改按钮单击时 textview 的可见性?