今天练习的目的是:
1。 使用NSUserDefaults来保存和读取用户的默认设置
练习的主要内容是:
通过使用UIView的透明度数值来实现手电筒的效果;具体效果如下图所示。
基本的原理就是:背景View设置为黑色,上面覆盖一个UIView, 通过slider来修改UIView的透明值。如果透明值越小,背景的黑色越明显,否则透明度越大,则背景透出的黑色越少,就呈现出白色;
1。 创建一个基于view_base_application, 项目名称为FlashLight
2. 在FlashLightViewController中声明三个UI控件
UIView (覆盖在背景图上面的视图)
UISwitch(设置开关)
UISlider(设置具体的透明值)
同时声明函数 setLightSourceAlphaView
修改uiView的透明数值
3. 链接UI控件、函数和File's Owner
4. 实现setLightSourceAlphaValue
-(IBAction)setLightSourceAlphaValue{
NSLog(@"lightvalue%f",lightSlider.value);
if (lightSwitch.on) {
lightView.alpha = lightSlider.value;
}else {
lightView.alpha = 0;
}
5. 然后本次练习的的主要内容
在关闭当前view时,使用NSUserDefaults保存lightSwitch的开关状态、以及lightSlider.value具体透明度数值
-(void)viewDidDisappear:(BOOL)animated{
NSLog(@"viewDidDisappear");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:lightSwitch.on forKey:kLightSwitch];
[defaults setFloat:lightSlider.value forKey:kLightSlider];
[super viewDidDisappear:YES];
}
同时在程序启动时,读取有关开关和透明度数值的设置
- (void)viewDidLoad {
NSLog(@"viewDidLoad");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
lightSwitch.on = [defaults boolForKey:kLightSwitch];
lightSlider.value = [defaults floatForKey:kLightSlider];
[super viewDidLoad];
}
这个例子完成了。
主要知识点:使用NSUserDefaults实现数据的保存和读取,相对比较简单。
声明:
1。上述例子代码来源于书籍<<Iphone开发入门经典>>,经过本人的实际练习通过。
2。 需要本例子代码的童鞋,请留下电子邮件。