https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIScreen_Class/Reference/UIScreen.html
iOS5以降では、iPhone(iPad)の画面輝度を取得したり変更できるようになった。ということで試してみた。iOS4系までは、「裏技」を使わないと実装できないかったがiOS5では簡単に実装できた。輝度変化の通知は「UIScreenBrightnessDidChangeNotification」を使うそうだが、うまく動作しなかった。
ソースコード
輝度UPボタン、輝度DOWNボタン、現在の輝度表示用のラベルをヘッダに追加。
UIButton *brightButton;
UIButton *darkButton;
UILabel *currentBrightness;
}
それぞれ実装。
{
currentBrightness.text = [NSString stringWithFormat:@"%0.3f", [[UIScreen mainScreen] brightness]];
}
- (void)brighten{
double brightness = [[UIScreen mainScreen] brightness];
brightness += 0.1;
if(brightness > 1.0)brightness = 1.0f;
[[UIScreen mainScreen] setBrightness:brightness];
[self updateBrightness];
}
- (void)darken{
double brightness = [[UIScreen mainScreen] brightness];
brightness -= 0.1;
if(brightness < 0.0)brightness = 0.0f;
[[UIScreen mainScreen] setBrightness:brightness];
[self updateBrightness];
}
- (void)viewDidLoad
{
[super viewDidLoad];
currentBrightness = [[UILabel alloc] initWithFrame:CGRectMake(30, 30, 200, 30)];
[self.view addSubview:currentBrightness];
[self updateBrightness];
brightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
brightButton.frame = CGRectMake(30,60,200,30);
[brightButton setTitle:@"Bright" forState:UIControlStateNormal];
[brightButton addTarget:self action:@selector(brighten) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:brightButton];
darkButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
darkButton.frame = CGRectMake(30,90,200,30);
[darkButton setTitle:@"Dark" forState:UIControlStateNormal];
[darkButton addTarget:self action:@selector(darken) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:darkButton];
}
ダウンロード: Brightness
