iOS 设置页面的代码编写

时间:2023-01-11 09:02:00

突然觉得好久没有更新博客了,今天就想把自己的项目中的一些功能和常用的模块写出来给大家参考一下。。。

iOS 设置页面的代码编写iOS 设置页面的代码编写

这是我的二个项目中的不同的设置界面,第一个设置的那个按钮是 用的开关switch ,当然这个就容易一些了,你只用控制他的 no 和yes 。里面的逻辑就是,你需要在你的引导页那里设置他的初始化,因为你刚进来肯定要给他设置全部打开的,因为这是程序中的一个惯性吧,然后,如果你有引导页的话,你就需要在引导页中设置他的初始化,给他设置 了初始化,后续就保存他的状态到本地就可以,每次进来只需要读取他的状态来设置就可以,

1.在引导页中初始化他的状态代码(这是有引导页的情况下写到引导页里面的,进行初始化)

    //程序刚运行的时候给他设置为0
[[NSUserDefaults standardUserDefaults]setInteger: forKey:@"countMessageNumber"];
[[NSUserDefaults standardUserDefaults] synchronize]; //新消息,声音,震动
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isNewMessage"];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isVoice"];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isVibrate"]; //这是开关控件的设置为YES

2 .在设置页面进行控制他的开关设置,因为你的接受新消息通知打开,下面的全部要打开,如果关闭下面的全部要关闭,下面是代码(看不懂的问我)

 #pragma mark 切换开关转化事件  (这是第一个设置的代码,这个是开关按钮写的)
-(void)statuesTableViewCell:(MessageSettingTableViewCell *)cell reloadTableView:(UISwitch *)sw
{
NSLog(@"section:%li,switch:%i",(long)sw.tag, sw.isOn);
switch (cell.tag) {
case :
{
if (sw.isOn)// 控制开关--------如果开了,全开
{ isShowCell=YES;
IsShowFirst = YES;
isShowSecond = YES;
            //设置cell的收缩控制
[WDLUserDefaults setBool:isShowCell forKey:@"isShowCell"];
[WDLUserDefaults setBool:IsShowFirst forKey:@"IsShowFirst"];
[WDLUserDefaults setBool:isShowSecond forKey:@"isShowSecond"]; isNewMessage = YES;
isVibrate = YES;
isVoice = YES; //新消息,声音,震动 实时的更新消息的状态
                 [WDLUserDefaults setBool:isNewMessage forKey:@"isNewMessage"];
[WDLUserDefaults setBool:isVoice forKey:@"isVoice"];
[WDLUserDefaults setBool:isVibrate forKey:@"isVibrate"]; [[NSUserDefaults standardUserDefaults] synchronize];
[_m_table reloadData]; } else{ isShowCell=NO;
IsShowFirst = NO;
isShowSecond = NO; [WDLUserDefaults setBool:isShowCell forKey:@"isShowCell"];
[WDLUserDefaults setBool:IsShowFirst forKey:@"IsShowFirst"];
[WDLUserDefaults setBool:isShowSecond forKey:@"isShowSecond"]; isNewMessage = NO;
isVibrate = NO;
isVoice = NO; //新消息,声音,震动 实时的更新消息的状态
[WDLUserDefaults setBool:isNewMessage forKey:@"isNewMessage"];
[WDLUserDefaults setBool:isVoice forKey:@"isVoice"];
[WDLUserDefaults setBool:isVibrate forKey:@"isVibrate"];
[[NSUserDefaults standardUserDefaults] synchronize]; [_m_table reloadData]; }
}
break;
case :
{ // 判断是否打开
if (sw.isOn)// 控制开关--------如果开了,全开
{ isVoice = YES; //新消息,声音,震动
[WDLUserDefaults setBool:isVoice forKey:@"isVoice"]; [[NSUserDefaults standardUserDefaults] synchronize];
// [_m_table reloadData]; }else{ isVoice = NO; //新消息,声音,震动 [WDLUserDefaults setBool:isVoice forKey:@"isVoice"]; [[NSUserDefaults standardUserDefaults] synchronize];
// [_m_table reloadData]; } }
break; case :
{ // 判断是否打开
if (sw.isOn)// 控制开关--------如果开了,全开
{ isVibrate = YES; //新消息,声音,震动
[WDLUserDefaults setBool:isVibrate forKey:@"isVibrate"];
[[NSUserDefaults standardUserDefaults] synchronize];
// [_m_table reloadData];
} else{ isVibrate = NO; //新消息,声音,震动
[WDLUserDefaults setBool:isVibrate forKey:@"isVibrate"]; [[NSUserDefaults standardUserDefaults] synchronize];
// [_m_table reloadData];
} }
break; case :
{ }
break; default:
break;
} // [[NSNotificationCenter defaultCenter] postNotificationName:@"MessageisVoice" object:nil];
}

3 .这样就在每个地方进行对他对key进行调用。来控制他的语音和振动的设置

4 .下面说第二个设置的控制

 4.1 这个按钮是一个真的 按钮 UIButton 。点击进行图片的切换,这个有点小坑。不过原理都一样

  

 - (void)viewDidLoad {
[super viewDidLoad]; NSUserDefaults *messageDeful=[NSUserDefaults standardUserDefaults]; //接受新消息通知
NSString *isMessage_notf = [messageDeful objectForKey:@"isMessage_notf"];
_str_Message=@"";
NSLog(@"isMessage_notf %@",isMessage_notf); if (isMessage_notf == nil) {
[messageDeful setObject:_str_Message forKey:@"isMessage_notf"];
[messageDeful synchronize ];
} //设置声音
NSString *isVoice_Set = [messageDeful objectForKey:@"isVoice_Set"];
_str_Voice=@"";
NSLog(@"isVoice_Set %@",isVoice_Set);
if (isVoice_Set == nil) {
[messageDeful setObject:_str_Voice forKey:@"isVoice_Set"];
[messageDeful synchronize ]; } // 设置振动
NSString *isVibration = [messageDeful objectForKey:@"isVibration_Set"];
_str_isVibration=@"";
NSLog(@"isVibration %@",isVibration); if (isVibration == nil) {
[messageDeful setObject:_str_isVibration forKey:@"isVibration_Set"];
[messageDeful synchronize ];
}
//设置扬声器打开
NSString *isSpeaker = [messageDeful objectForKey:@"isSpeaker_Set"];
_str_isSpeaker=@"";
NSLog(@"isSpeaker %@",isSpeaker); if (isSpeaker == nil) {
[messageDeful setObject:_str_isSpeaker forKey:@"isSpeaker_Set"];
[messageDeful synchronize ];
} _huud = [[MBProgressHUD alloc]init];
} -(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated]; NSString *is_Message=[userdefault objectForKey:@"isMessage_notf"];
if ([is_Message isEqualToString:@""]) { [_messageaccept setImage:[UIImage imageNamed:@"switch_on@2X.png"] forState:UIControlStateNormal];
}else if([is_Message isEqualToString:@""])
{
[_messageaccept setImage:[UIImage imageNamed:@"switch_off@2X.png"] forState:UIControlStateNormal];
} NSString *isVoice=[userdefault objectForKey:@"isVoice_Set"];
if ([isVoice isEqualToString:@""]) { [_voice setImage:[UIImage imageNamed:@"switch_on@2X.png"] forState:UIControlStateNormal]; }else if([isVoice isEqualToString:@""])
{
[_voice setImage:[UIImage imageNamed:@"switch_off@2X.png"] forState:UIControlStateNormal];
} NSString *isVibration=[userdefault objectForKey:@"isVibration_Set"];
if ([isVibration isEqualToString:@""]) { [_vibration setImage:[UIImage imageNamed:@"switch_on@2X.png"] forState:UIControlStateNormal];
}else if([isVibration isEqualToString:@""])
{
[_vibration setImage:[UIImage imageNamed:@"switch_off@2X.png"] forState:UIControlStateNormal];
} NSString *isSperk=[userdefault objectForKey:@"isSpeaker_Set"];
if ([isSperk isEqualToString:@""]) { [_speaker setImage:[UIImage imageNamed:@"switch_on@2X.png"] forState:UIControlStateNormal];
}else if([isSperk isEqualToString:@""])
{
[_speaker setImage:[UIImage imageNamed:@"switch_off@2X.png"] forState:UIControlStateNormal];
}
}

这是在ViewDidLoud里面设置他的初始化,因为我这个项目中没有设置引导页,所以在ViewDidLoad里面进行了初始化,然后在viewWillAppear里面设置了他的点击更换图片的一些操作。然后每个地方用的话,只需要设置一些他的属性或者在.m里面设置他的变量,然后获得他的Key值,进行获取他的状态,然后根据他的状态来设置他的声音还是振动了。。

原理就是这样的。。非常感谢我 胖哥的指导。。在这里很感谢他。。他的

@平淡的我

博客http://www.cnblogs.com/wangdelong/  这些都是自己写的,如有不明白,可以找我。。谢谢。。。互相学习,共同努力!!@_@

iOS 设置页面的代码编写的更多相关文章

  1. IOS 推送-配置与代码编写

    IOS 推送配置与代码编写 这里介绍IOS的推送,本文章已经在IOS6/7/8上都能运行OK,按照道理IOS9应该没问题. 大纲: 1.文章前提 2.推送介绍 3.推送文件账号设置 4.推送证书介绍 ...

  2. iOS书摘之编写高质量iOS与OS X代码的52个有效方法

    来自<Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法>一书的摘要总结 一.熟悉Objective-C 了解Objective-C语言的起源 ...

  3. Xamarin iOS教程之编辑界面编写代码

    Xamarin iOS教程之编辑界面编写代码 Xamarin iOS的Interface Builder Interface Builder被称为编辑界面.它是一个虚拟的图形化设计工具,用来为iOS应 ...

  4. 第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法

    第一章 熟悉Objective -C   编写高质量iOS与OS  X代码的52 个有效方法   第一条: 了解Objective-C 语言的起源 关键区别在于 :使用消息结构的语言,其运行时所应执行 ...

  5. iOS 从应用中跳转至系统设置页面里的多种设置页面

    我们在开发app过程中很多时候会需要设置系统权限,这时就需要在应用中跳转至系统设置页面权限设置页面,以下是自己结合网上的资料总结的一些经验: 直接从应用中跳转至系统设置中这个应用的权限设置页面 NSU ...

  6. IOS跳转设置页面及其他各种跳转页面设置

    转载来源 CocoaChina 跳到更多设置界面 除了跳到WiFi设置界面,能不能跳到其他的设置界面呢?比如:定位服务.FaceTime.音乐等等.都是可以的,一起来看看如何实现的! 定位服务 定位服 ...

  7. 【iOS】跳转到设置页面

    iOS8.0以后有效 定位服务 定位服务有很多APP都有,如果用户关闭了定位,那么,我们在APP里面可以提示用户打开定位服务.点击到设置界面设置,直接跳到定位服务设置界面.代码如下: 1 2 3 4 ...

  8. ios开发中APP底部上滑不能调出如WiFi、蓝牙、播放等的设置页面的解决的方法

    在开发的APP中我们通常通过手动底部上滑来调出WiFi.蓝牙.飞行模式等的设置页面.有时我们开发的APP无法调出. 解决的方法: 进入iPhone "设置" --> &quo ...

  9. iOS 10 :用 UIViewPropertyAnimator 编写动画

    英文:shinobicontrols 译文:戴仓薯 链接:http://www.jianshu.com/p/4244cf130478 [iOS 10 day by day] Day 1:开发 iMes ...

随机推荐

  1. 架构师养成记--3&period;synchronized细节问题

    一.synchronized有锁重入的特点,某个线程得到对象的锁后,再次请求此对象可以再次得到改对象的锁.如下示例,在method1中调用method2,在method2中调用method3,而met ...

  2. 使用count结合nvl函数时碰到的问题

    count()函数功能:统计表中中某个字段或所有记录个数,字段值为null的不做统计. 手册中解释: COUNT returns the number of rows returned by the ...

  3. CSS3样式

    1.边框 div{border:2px solid;border-radius:25px;-moz-border-radius:25px; /* Old Firefox */} border-radi ...

  4. ANDROID&lowbar;MARS学习笔记&lowbar;S01原始版&lowbar;013&lowbar;广播机制二

    一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  5. Linux内核源代码解析——用户发送数据包的起源之sendto

    本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/10162853 Jack:我想知道用户如何把数据发送到 ...

  6. NYOJ10&comma;skiing

    skiing 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描写叙述 Michael喜欢滑雪百这并不奇怪, 由于滑雪的确非常刺激.但是为了获得速度,滑的区域必须向下倾斜,并且 ...

  7. hdu&lowbar;1253&lowbar;胜利大逃亡&lpar;bfs&plus;剪枝&rpar;

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1253 题意:三维BFS,不解释 题解:DFS+剪枝会超时,裸BFS会超时,BFS+剪枝才能AC,有点伤 ...

  8. Linux Namespaces机制

    转自:http://www.cnblogs.com/lisperl/archive/2012/05/03/2480316.html Linux Namespaces机制提供一种资源隔离方案.PID,I ...

  9. 前端自动化测试漫长路之——Selenium初探

    引言 最近想解决前端开发或测试中的两个问题:一是界面UI的布局适配,能否在测试的过程中,通过命令操作真机打开相应页面然后截屏,通过对图片识别分类,发现有问题的图片,然后及时修复:二是页面性能分析,很多 ...

  10. 【asp&period;net】asp&period;net实现上传Excel文件并读取数据

    #前台代码:使用服务端控件实现上传 <form id="form1" runat="server"> <div> <asp:Fil ...