2011-11-14 36 views
-1

我正在为iPhone做圣经阅读器应用程序,我想实现“夜间模式”。如何在阅读器应用程序中实现夜景?

我已经做了夜间模式的按钮,阅读窗格是一个桌面视图,但其他页面也存在于我的应用程序中,我的需要是当夜间模式切换的视图的enire背景必须改变黑色和文字色彩呈白色。

我在桌面的背面放置了一个黑色渐变图像视图,并将其设置为隐藏状态,当点击该按钮时,我执行darkgradient.hidden = no;,这样png将取消隐藏并在桌面视图后显示为黑色。

我把tableview背景设置为清晰的颜色。 tableview单元格中有一个名为chapterandverse标签的标签。我把这个代码在tableview中,改变背景,改变文字颜色cellForRowAtIndexpath:

if (imagedarkbackground.hidden == NO) { 
      cell.chapterAndVerse.backgroundColor= [UIColor blackColor]; 
      cell.chapterAndVerse.textColor = [UIColor whiteColor]; 
      table.backgroundColor = [UIColor blackColor]; 
      cell.textLabel.textColor = [UIColor whiteColor]; 
     } 
     else{ 
      //default 
     } 

的问题是,当我切换到另一个网页,回来的实现代码如下页的黑色背景的变化为默认值。我知道这不是在应用程序中设置夜间模式的正确方法,它也改变了tableview背景而不是整个应用程序背景视图,所以我如何以正确的方式来做到这一点?

回答

0

如果背景颜色重置为默认值,则您的UITableViewController子类可能会被卸载。您是否将其展示为模态视图?如果是这样,则必须将夜间模式设置保存在其他位置,例如应用程序委托上的BOOL属性。然后在viewDidLoad中,检查该属性并相应地设置背景颜色。更好的是,保存值,所以如果你的应用程序退出,当它返回时,夜间模式仍然设置为相同的事情,但如果自从上次使用应用程序以来已经过去了很长时间,也许不会。

更好的是,根据时钟时间自动设置夜间模式。再好一点,使用相机中的数据来检测环境光照水平。但是在任何情况下,一个要重写的按钮也很好。

相关问题