2010-10-22 51 views
1

是否可以從代碼減少畫面的光(亮度)?減少畫面的光

+1

可能重複[在iPhone上以編程方式更改背光亮度](http://stackoverflow.com/questions/366889/change-backlight-brightness-on-iphone-programmatically) – DarkDust 2010-10-22 14:18:56

回答

1

這不是一個「已發佈」API,因此如果您使用它,Apple會拒絕您從App Store上的sumbission。所以簡短的答案是「不」。

但是......

,人們用的是放置一個UIView在你的主窗口,給它一個堅實的黑色背景,然後調整透明度變暗什麼顯示其背後的一種有效方法。

在你appDelagate的 「的applicationDidFinishLaunching」 的號召,在那裏你通常會做:我已經通過執行以下操作做到了這一點

[window addSubview:viewController.view]; 

而是做:

[window addSubview:viewController.view]; 
[window addSubview:darkScreen]; 

其中 「darkscreen」 是使用Interface Builder創建的(IBOutlet)UIView,並在MainWindow.xib中顯示如下:

  1. Backgrou第二是BLACK
  2. Alpha是
  3. 用戶交互是禁用

當你想 「暗淡」 的畫面,參考darkScreen從你的appDelegate,並撞了它的阿爾法。

+0

P.S.實際上,我爲此製作了一個「紅色屏幕」變體,以便爲用戶提供我編寫的海洋圖表應用程序的「夜間模式」。非常有效,它甚至適用於所有工具欄,子視圖和viewController引發的東西。 – Brad 2011-08-02 17:17:35

0

this post

另外,嘗試,如果這仍然適用於您:

GSEventSetBacklightLevel(newLevel); //新的等級:0.0 - 1.0。

爲了 這個工作,您將需要 包括GraphicsServices.h。根據 上你得到你的標題,你可能需要添加 GSEventSetBacklightLevel(float value); 方法頭,否則方法 將不會工作。

+0

我添加下面這行代碼:#import < GraphicsServices/GraphicsServices.h>並使用GSEventSetBacklightLevel(newLevel);但找不到GraphicServices – SajjadZare 2010-10-22 14:32:30

+1

這不是讓你的應用程序被拒絕的東西嗎?我還記得閱讀它只能在iPhone OS 3之前的所有版本中工作嗎? – 2010-10-22 15:45:02

1

我所做的是在MainViewController中添加一個UIView。然後,我將UIView背景顏色設置爲黑色,並根據您希望設置的值將其設置爲alpha。如果你想讓屏幕更明亮,可以用白色背景添加相同的東西。

似乎工作沒有煩人的蘋果應用程序測試人員!