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 设置页面的代码编写的更多相关文章
- IOS 推送-配置与代码编写
IOS 推送配置与代码编写 这里介绍IOS的推送,本文章已经在IOS6/7/8上都能运行OK,按照道理IOS9应该没问题. 大纲: 1.文章前提 2.推送介绍 3.推送文件账号设置 4.推送证书介绍 ...
- iOS书摘之编写高质量iOS与OS X代码的52个有效方法
来自<Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法>一书的摘要总结 一.熟悉Objective-C 了解Objective-C语言的起源 ...
- Xamarin iOS教程之编辑界面编写代码
Xamarin iOS教程之编辑界面编写代码 Xamarin iOS的Interface Builder Interface Builder被称为编辑界面.它是一个虚拟的图形化设计工具,用来为iOS应 ...
- 第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法
第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法 第一条: 了解Objective-C 语言的起源 关键区别在于 :使用消息结构的语言,其运行时所应执行 ...
- iOS 从应用中跳转至系统设置页面里的多种设置页面
我们在开发app过程中很多时候会需要设置系统权限,这时就需要在应用中跳转至系统设置页面权限设置页面,以下是自己结合网上的资料总结的一些经验: 直接从应用中跳转至系统设置中这个应用的权限设置页面 NSU ...
- IOS跳转设置页面及其他各种跳转页面设置
转载来源 CocoaChina 跳到更多设置界面 除了跳到WiFi设置界面,能不能跳到其他的设置界面呢?比如:定位服务.FaceTime.音乐等等.都是可以的,一起来看看如何实现的! 定位服务 定位服 ...
- 【iOS】跳转到设置页面
iOS8.0以后有效 定位服务 定位服务有很多APP都有,如果用户关闭了定位,那么,我们在APP里面可以提示用户打开定位服务.点击到设置界面设置,直接跳到定位服务设置界面.代码如下: 1 2 3 4 ...
- ios开发中APP底部上滑不能调出如WiFi、蓝牙、播放等的设置页面的解决的方法
在开发的APP中我们通常通过手动底部上滑来调出WiFi.蓝牙.飞行模式等的设置页面.有时我们开发的APP无法调出. 解决的方法: 进入iPhone "设置" --> &quo ...
- iOS 10 :用 UIViewPropertyAnimator 编写动画
英文:shinobicontrols 译文:戴仓薯 链接:http://www.jianshu.com/p/4244cf130478 [iOS 10 day by day] Day 1:开发 iMes ...
随机推荐
- BEGIN_TEMPLATE_MESSAGE_MAP
最近转做服务端开发,或多或少有点坑爹的感觉.目前正在恶补Linux C/C++编程,主要还是集中在Linux系统API的学习.不过也好,以后更新的内容不仅仅只有Windows了. 今天说一点简单的东西 ...
- 数据库对象映射为java对象,不使用框架
方法: public static <T> List<T> processResultSetToList(ResultSet rs, Class<T> clazz) ...
- HTML标签之<q> <blockquote>
两个标签都表示“引用”. 不同的是,q标签是行内元素,在内容的开始和结尾处会包有“”,而 blockquote是块级元素,默认带有左右40px的外间距,不带“”. 从语义上讲,前者引用的是小段文字,后 ...
- C#异步批量下载文件
C#异步批量下载文件 实现原理:采用WebClient进行批量下载任务,简单的模拟迅雷下载效果! 废话不多说,先看掩饰效果: 具体实现步骤如下: 1.新建项目:WinBatchDownload 2.先 ...
- select、poll、poll的比较(转)
原文地址:http://www.cnblogs.com/xuxm2007/archive/2011/08/15/2139809.html select.poll.epoll的比较 linux提供了se ...
- PAT (Basic Level) Practise:1031. 查验身份证
[题目链接] 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9, ...
- 我的Java后端书架 (2016年暮春3.0版)
04月 24, 2016 | Filed under 技术 http://calvin1978.blogcn.com/articles/javabookshelf.html 书架主要针对Java后 ...
- Python KNN算法
机器学习新手,接触的是<机器学习实战>这本书,感觉书中描述简单易懂,但对于python语言不熟悉的我,也有很大的空间.今天学习的是k-近邻算法. 1. 简述机器学习 在日常生活中,人们很难 ...
- macos下sed小试
linux下替换是这么干的 sed -i "s/xxxxxxxxxx/video_capture_module/g" project.pbxproj 但是macos下略有不同,照搬 ...
- 防刷新jq左侧滚动条导航展示
html代码: <div class="fangchan_navcont"> <div class="fangchan_nav" ...