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

标签 ios objective-c xcode uibutton uiimage

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

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

相关文章:

objective-c - 序列化时 JSONKit 无法识别选择器

ios - Git 上的 Push 错误,然后是 Pull 和 Workspace 上的错误

swift - XCTestCases如何实现异步任务依赖?

ios - Xcode 在为 iPhone 编译时设置了什么#defines

ios - 如何让文本淡入 UILabel?

ios - 在iOS中使用C从项目目录获取文件路径

ios - 使用 Swift 复制静态变量

ios - 具有使用 intrinsicContentSize 的动态高度的 UIView

ios - 在 UITabBarController 中切换选项卡后 UIRefreshControl 卡住了

objective-c - Mac 操作系统应用程序音量