2011-09-06 72 views

回答

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 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]]; 
} 
+0

輝煌 - 謝謝!當我只嘗試了阿爾法代碼時,它隱藏了所有的按鈕?爲什麼是這樣? – pixelbitlabs

+0

我做了一個NSLog來找出代碼已被應用後,新的alpha是什麼,它說NULL。 – pixelbitlabs

+0

你知道這是爲什麼嗎? – pixelbitlabs

1

要檢查按鈕狀態,請檢查此帖:Xcode: Check if UIButton is hidden, using NSUserDefaults

關於Alpha,請嘗試詢問返回值:self.button.alpha;

您可以更新SQLite數據庫中按鈕和Alpha按鈕的狀態(值)。在viewDidLoad方法中,回調數據庫中的值並立即應用它們。關於如何做到這一點,請查看網絡上的更多信息,您將到達那裏,因爲互聯網上充滿了關於該主題的教程。那麼,這就是我會做的,SQLite實際上是非常有用的;但也許還有其他方法。