Как сохранить и загрузить backgroundColor в NSUserDefaults - PullRequest
5 голосов
/ 02 апреля 2011

store -

-(IBAction) setMyColor:(id)sender{

if (sender == yellowButton ) {
    [colorView setBackgroundColor:[UIColor yellowColor]];
}

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
UIColor *strColor = [colorView backgroundColor];
[userDefaults setObject:strColor forKey:@"myColor"];
[userDefaults synchronize];

}

load -

- (void)viewDidLoad {   

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[colorView setBackgroundColor[UIColor [userDefaults objectForKey:@"myColor"]]];

[super viewDidLoad];

}

но не удалось запустить ... возможно, вопростакое «как получить значение backgroundColor из UIView»?

1 Ответ

13 голосов
/ 02 апреля 2011

вы можете использовать

//save     
    NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:color];
    [[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@"myColor"];

//retrieve
    NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"myColor"];
    UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];

or 

//save
const CGFloat  *components = CGColorGetComponents(pColor.CGColor);
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setFloat:components[0]  forKey:@"cr"];
[prefs setFloat:components[1]  forKey:@"cg"];
[prefs setFloat:components[2]  forKey:@"cb"];
[prefs setFloat:components[3]  forKey:@"ca"];

//retrieve
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
UIColor* tColor = [UIColor colorWithRed:[prefs floatForKey:@"cr"] green:[prefs floatForKey:@"cg"] blue:[prefs floatForKey:@"cb"] alpha:[prefs floatForKey:@"ca"]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...