1、真對(duì)我們的項(xiàng)目來(lái)說(shuō) 夜間模式是后來(lái)項(xiàng)目完工的時(shí)候增加的需求,
所以后來(lái)直接用這種方式,簡(jiǎn)單粗暴,直接改window.顏色,其他的設(shè)置你們自行增減。
代碼如下,
- (void)clickSwitch:(UISwitch *)sender {
if (sender.isOn == YES) {
// 開啟
self.superview.window.backgroundColor = [UIColor blackColor]; //設(shè)置背景色
self.superview.window.alpha = 0.4; //透明度
}else {
// 關(guān)閉
self.superview.window.backgroundColor = [UIColor whiteColor];
self.superview.window.alpha = 1.0;
}
}
2、如果是新的項(xiàng)目,建議做一下統(tǒng)一封裝一個(gè)主題管理類處理,然后各種控件都做一個(gè)基類,在基類里面做主題的處理,改變主題的時(shí)候,你可以用delegate、通知任意你想要的形式去發(fā)送通知,
3、我看網(wǎng)上有個(gè)很火的demo在gitHub上面,九千多star,忘了叫啥名字了,看了一遍沒(méi)弄懂他們的套路,畢竟是大牛寫的,還有利用runtime的,總之有能力的還是可以做的很完美的。