IOS基础知识记录五(简单手电筒)

一个简单的手电筒实例

1.在xcode中使用模板Single view Application 新建一个Light项目

2.在MainStoryboard.storyboard里面规划三个控件, 一个开关(UISwitch), 一个控制控制亮度(UISlider),一个控制显示(UIView. 先设置Scene中的视图的alpha = 1.0 即默认为黑色

3.分别对switchOn和slider的value changed触发同一个事件 setLightAlphaValue
 - (IBAction)setLightAlphaValue:(id)sender {
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    
    [userDefaults setBool: switchOn.on forKey: @"isOn"];
    [userDefaults setFloat: slider.value forKey: @"sliderValue"];
    
    [userDefaults synchronize];
   //以上操作只是设置客户的一些默认操作。如:设置开关的默认状态, 手电筒的亮度
   //方便下次打开时, 记住上次操作的结果
    
    if (switchOn.isOn) {
        light.alpha = slider.value;
    }else {
        light.alpha = 0.0;
    }
}


4.在viewDidLoad中调用一个初始化方法。该方法用来初始化手电筒的一些显示参数
//加载上次操作结果
- (void)initBirghtnessAndSwithOn {
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    
    switchOn.on = [userDefaults boolForKey: @"isOn"];
    slider.value = [userDefaults floatForKey: @"sliderValue"]];
    
    if ([userDefaults boolForKey: @"isOn"]) {
        light.alpha = [userDefaults floatForKey: @"sliderValue"]];
    }else {
        light.alpha = 0.0;
    }
}


5.如果你喜欢可以把项目中一些常用的常量采用宏定义
#define switchOnOff @"isOn"
#define sliderValue @"sliderValue"

//这样可以替换项目中的常量, 变于统一操作

你可能感兴趣的:(ios,cocoa,Objective-C,NSUserDefaults,手电筒)