admin管理员组文章数量:1516870
最近希望给自己的APP中加入夜间模式这一选项,经过学习使用单例模式实现了day or night的切换,很简单的代码,欢迎大家学习。
1、(1)创建单例,继承NSObject
@interface LXChangeDayAndNight : NSObject
// 创建 Bool 类型的 Style 来获得是否是夜间模式状态
@property ( nonatomic , assign ) BOOL style;
+ ( LXChangeDayAndNight *)changeDayAndNight;
@end
(2)初始化单例
+ ( LXChangeDayAndNight *)changeDayAndNight
{
static LXChangeDayAndNight *change = nil ;
static dispatch_once_t onceToken;
dispatch_once (&onceToken, ^{
change = [[ self alloc ] init ];
});
return change;
}
// 创建一个 Switch 控件,切换白天和夜间模式
UISwitch *dayOrNightSwitch = [[ UISwitch alloc ] initWithFrame : CGRectMake ( 100 , 100 , 100 , 50 )];
self . dayOrNightSwitch = dayOrNightSwitch;
[dayOrNightSwitch addTarget : self action : @selector (judgeDayOrNight) forControlEvents : UIControlEventTouchUpInside ];
[ self . view addSubview :dayOrNightSwitch];
- ( void )judgeDayOrNight
{
LXChangeDayAndNight *change = [ LXChangeDayAndNight changeDayAndNight ];
if ( self . dayOrNightSwitch . on ) {
//到这一行,单例change的style属性被赋值,其他控制器可以直接从单例中取值
change. style = YES ;
self . view . backgroundColor = [ UIColor blackColor ];
NSLog ( @"%d" ,change. style );
} else {
change. style = NO ;
self . view . backgroundColor = [ UIColor whiteColor ];
NSLog ( @"%d" ,change. style );
}
}
// 创建按钮 push 到另一个 controller
UIButton *btn = [ UIButton buttonWithType : UIButtonTypeCustom ];
btn. backgroundColor = [ UIColor purpleColor ];
btn. frame = CGRectMake ( 100 , 300 , 100 , 100 );
//push 操作
[btn addTarget : self action : @selector (push) forControlEvents : UIControlEventTouchUpInside ];
[ self . view addSubview :btn];
- ( void )viewDidLoad {
[ super viewDidLoad ];
self . view . backgroundColor = [ UIColor whiteColor ];
// 因为在上面的控制器中已经创建了单例对象,所以在 second 控制器中再次调用这个单例的时候会直接 return change 的状态
LXChangeDayAndNight *change = [ LXChangeDayAndNight changeDayAndNight ];
self . style = change. style ;
if ( self . style ) {
self . view . backgroundColor = [ UIColor blackColor ];
} else {
self . view . backgroundColor = [ UIColor whiteColor ];
}
}
代码比较简单,有不懂得地方可以咨询我。通过学习深知自己对于单例的理解还远远不够,今后的学习中还要继续努力、
版权声明:本文标题:如何在iOS上激活夜视功能?一步到位教程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1771299959a3263945.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论