保存UIButton状态并使用NSUserDefaults加载

时间:2011-09-06 18:53:42

标签: xcode uibutton state nsuserdefaults viewdidload

我想知道如何检测按钮是否隐藏,以及应用了多少alpha。然后,当调用viewDidLoad时,可以应用这些值以使按钮处于关闭应用程序时保留的状态。

我该如何编码?

谢谢,

詹姆斯

2 个答案:

答案 0 :(得分:2)

如果您的标题显示,您想要使用NSUserDefaults,那么您可以像这样设置它们:

-(void)saveButtonState:(UIButton*)button {
    NSUserDefaults defaults = [NSUserDefaults standardUserDefaults];
    [defaults setBool:button.hidden forKey:@"isHidden"];
    [defaults setFloat:button.alpha forKey:@"alpha"];
}

-(void)restoreButtonState:(UIButton*)button {
    NSUserDefaults defaults = [NSUserDefaults standardUserDefaults];
    button.hidden = [defaults boolForKey:@"isHidden"];
    button.alpha = [defaults floatForKey:@"alpha"];
}

如果您想对多个按钮执行此操作,则可以使用tag来区分默认值:

-(void)saveButtonState:(UIButton*)button {
    NSUserDefaults defaults = [NSUserDefaults standardUserDefaults];
    [defaults setBool:button.hidden forKey:[NSString stringWithFormat:@"isHidden%d",button.tag]];
    [defaults setFloat:button.alpha forKey:[NSString stringWithFormat:@"alpha%d",button.tag]];
}

-(void)restoreButtonState:(UIButton*)button {
    NSUserDefaults defaults = [NSUserDefaults standardUserDefaults];
    button.hidden = [defaults boolForKey:[NSString stringWithFormat:@"isHidden%d",button.tag]];
    button.alpha = [defaults floatForKey:[NSString stringWithFormat:@"alpha%d",button.tag]];
}

答案 1 :(得分:1)

要查看按钮状态,请查看此帖子:Xcode: Check if UIButton is hidden, using NSUserDefaults

关于Alpha,尝试询问返回值:self.button.alpha;

您可以更新SQLite数据库中按钮和Alpha按钮的状态(值)。在viewDidLoad方法中,从数据库中回调值并立即应用它们。关于如何做到这一点,请在网上查看更多信息,你会到达那里,因为互联网上有关于该主题的教程。嗯,这就是我要做的,SQLite实际上非常有用;但也许还有其他方法。