夜間模式按鈕
if (indexPath.row == 2 || indexPath.row == 3)
{
UISwitch * swi = [[UISwitch alloc]initWithFrame:CGRectMake(SCREEN_W - 60, 5, 50, 30)];
//設(shè)置顏色
swi.onTintColor = [UIColor greenColor];
swi.tag = indexPath.row;
[swi addTarget:self action:@selector(changeOption:) forControlEvents:UIControlEventValueChanged];
[cell.contentView addSubview:swi];
}
實(shí)現(xiàn)方法
-(void)changeOption:(UISwitch *)swi
{
if (swi.tag == 2) {
//夜間模式
if (swi.on) {
UIApplication * app = [UIApplication sharedApplication];
AppDelegate * delegate = app.delegate;
//設(shè)置view的背景色
_darkView.backgroundColor = [UIColor blackColor];
_darkView.alpha = 0.2;
//關(guān)掉view的交互屬性
_darkView.userInteractionEnabled = NO;
[delegate.window addSubview:_darkView];
}
else
{
[_darkView removeFromSuperview];
}
}
else
{
//推送消息
if (swi.on) {
//創(chuàng)建本地推送任務(wù)
[self createLocalNotification];
}
else
{
//取消推送任務(wù)
[self cancelLocalNotification];
}
}
}
創(chuàng)建推送消息
推送按鈕
-(void)createLocalNotification
{
//解決iOS8以后本地推送無(wú)法接收到推送消息的問(wèn)題
//獲取系統(tǒng)的版本號(hào)
float systemVersion = [[UIDevice currentDevice].systemVersion floatValue];
if (systemVersion >= 8.0)
{
//設(shè)置推送消息的類(lèi)型
UIUserNotificationType type = UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;
//將類(lèi)型添加到設(shè)置里
UIUserNotificationSettings * settings = [UIUserNotificationSettings settingsForTypes:type categories:nil];
//將設(shè)置內(nèi)容注冊(cè)到系統(tǒng)管理里面
[[UIApplication sharedApplication]registerUserNotificationSettings:settings];
}
//初始化本地推送
UILocalNotification * localNotification = [[UILocalNotification alloc]init];
//設(shè)置從當(dāng)前開(kāi)始什么時(shí)候開(kāi)始推送
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:30];
//設(shè)置需要推送的重復(fù)周期
localNotification.repeatInterval = NSCalendarUnitDay;
//設(shè)置推送的時(shí)區(qū)
localNotification.timeZone = [NSTimeZone defaultTimeZone];
//設(shè)置推送內(nèi)容
localNotification.alertBody = @"親~~~你好久沒(méi)來(lái)愛(ài)生活了暇检,快來(lái)看看我吧包蓝!";
//設(shè)置推送時(shí)的音效
localNotification.soundName = @"";
//設(shè)置提示消息的個(gè)數(shù)
localNotification.applicationIconBadgeNumber = 1;
//將推送任務(wù)添加到系統(tǒng)管理里面
[[UIApplication sharedApplication]scheduleLocalNotification:localNotification];
}
-(void)cancelLocalNotification
{
UILocalNotification * localNotification;
//第一種轰胁,直接取消全部的推送任務(wù)
//[[UIApplication sharedApplication]cancelAllLocalNotifications];
//第二種朽肥,取消指定條件下的推送任務(wù)
NSArray * array = [[UIApplication sharedApplication]scheduledLocalNotifications];
for (UILocalNotification * noti in array) {
if ([noti.alertBody isEqualToString:@"親~~~你好久沒(méi)來(lái)愛(ài)生活了,快來(lái)看看我吧!"]) {
[[UIApplication sharedApplication]cancelLocalNotification:noti];
//取消推送任務(wù)后重置icon 的數(shù)值
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
}
}