Сохранить состояние UIButton и загрузить с NSUserDefaults - PullRequest
0 голосов
/ 06 сентября 2011

Мне было интересно, как определить, была ли кнопка скрыта или нет, и сколько альфа было применено к ней. Затем, когда вызывается viewDidLoad, эти значения могут быть применены, чтобы сделать кнопки в том же состоянии, в котором они оставались при закрытии приложения.

Как мне это написать?

Спасибо

Джеймс

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Если, как подсказывает ваш заголовок, вы хотите использовать 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]];
}
1 голос
/ 06 сентября 2011

Чтобы проверить состояние кнопки, проверьте это сообщение: Xcode: проверьте, не скрыта ли UIButton, используя NSUserDefaults

Относительно альфы, попробуйте запросить возвращаемое значение: self.button.alpha;

Вы можете обновить состояние (значение) кнопки и кнопки Альфа в базе данных SQLite.В методе viewDidLoad вызовите значения из базы данных и немедленно примените их.О том, как это сделать, просмотрите дополнительную информацию в Интернете, и вы попадете туда, потому что в Интернете полно учебников по этой теме.Ну, вот что я бы сделал, SQLite действительно полезен на самом деле;но, возможно, есть и другие способы.

...