Xcode 保存UIButton状态并使用NSUserDefaults加载

Xcode 保存UIButton状态并使用NSUserDefaults加载,xcode,uibutton,state,nsuserdefaults,viewdidload,Xcode,Uibutton,State,Nsuserdefaults,Viewdidload,我想知道如何检测按钮是否隐藏,以及对其应用了多少alpha。然后,当调用viewDidLoad时,可以应用这些值使按钮保持与应用程序关闭时相同的状态 我如何编写代码 谢谢 James如果如标题所示,您希望使用NSUserDefaults,则可以如下设置: -(void)saveButtonState:(UIButton*)button { NSUserDefaults defaults = [NSUserDefaults standardUserDefaults]; [defau

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

我如何编写代码

谢谢


James

如果如标题所示,您希望使用
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
s在默认值中区分它们:

-(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]];
}

如标题所示,如果要使用
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
s在默认值中区分它们:

-(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]];
}

要查看按钮状态,请查看此帖子:

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


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

要查看按钮状态,请查看此帖子:

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


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

太棒了-谢谢你!当我尝试阿尔法密码时,它隐藏了所有的按钮?这是为什么?我做了一个NSLog来找出应用代码后新的alpha是什么,它说空。@James:如果你只记录
按钮,会发生什么事。alpha
?@James:你可以试着从一个CGFloat转换到另一个float,尽管我不确定为什么这是必要的;e、 g.使用
(浮动)按钮。alpha
@James:然后先设置alpha。太棒了-谢谢!当我尝试阿尔法密码时,它隐藏了所有的按钮?这是为什么?我做了一个NSLog来找出应用代码后新的alpha是什么,它说空。@James:如果你只记录
按钮,会发生什么事。alpha
?@James:你可以试着从一个CGFloat转换到另一个float,尽管我不确定为什么这是必要的;e、 g.使用
(浮动)按钮。alpha
@James:然后先设置alpha。