ios - 无法以编程方式覆盖 UIButton 选项

标签 ios objective-c uibutton

已修复。我必须清除 IB 中按钮的背景图像。


我的 View 中有两个按钮,它们应该根据 if 语句使用不同的图像。我在 IB 中创建了按钮(并设置了它们的大小、约束),但我想在 viewDidLoad 中更改它们的外观。我做了一个方法来处理变化,但不幸的是它不起作用。当我运行该应用程序时,我可以记录正确的 NSLog,但没有任何变化。看来我的 setImage: forState: 方法无法覆盖 Storyboard 选项。有人知道我做错了什么吗?

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setButtonLayout];
}

- (void) setButtonLayout {

    if ([[PFUser currentUser][@"status"] isEqualToString:@"active"]) {

        [self.bttn1 setImage:[UIImage imageNamed:@"01-normal.png"] forState:UIControlStateNormal];
        [self.bttn1 setImage:[UIImage imageNamed:@"01-selected.png"] forState:UIControlStateSelected];

        [self.bttn2 setImage:[UIImage imageNamed:@"02-normal.png"] forState:UIControlStateNormal];
        [self.bttn2 setImage:[UIImage imageNamed:@"02-selected.png"] forState:UIControlStateSelected];
        NSLog(@"1. BUTTON");
    }
    if ([[PFUser currentUser][@"status"] isEqualToString:@"inactive"]) {

        [self.bttn3 setImage:[UIImage imageNamed:@"03-normal.png"] forState:UIControlStateNormal];
        [self.bttn3 setImage:[UIImage imageNamed:@"03-selected.png"] forState:UIControlStateSelected];

        [self.bttn4 setImage:[UIImage imageNamed:@"04-normal.png"] forState:UIControlStateNormal];
        [self.bttn4 setImage:[UIImage imageNamed:@"04-selected.png"] forState:UIControlStateSelected];
         NSLog(@"2. BUTTON");
    }
}

最佳答案

尝试将您的初始化从 viewWillLoad 方法移动到 viewWillAppear: 方法。

关于ios - 无法以编程方式覆盖 UIButton 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081348/

相关文章:

objective-c - NSButton 以编程方式列出或解除现有绑定(bind)

ios - Swift 约束不在旋转之后

python - 在 Swift 中测量 http HEAD 请求的响应时间

ios - 更新随机整数(swift,spritekit)

ios - iOS-Cordova插件Tagmanager错误

ios - 如何将搜索栏添加到 Collection View Controller ?

ios - animateWithDuration 不是动画 UIButton

ios - 如何即时更改自定义 UIButton 的图像

ios - 使用子类向我的 UIButton 添加了一个下拉三角形,如何在更改标题时防止它拉伸(stretch)?

ios - SKPayment/SKPaymentQueue : Cannot connect to iTunes Store