2011-11-22 23 views
13

Dim yap?iPhone Ekran iPhone kullanarak otomatik kilit olmadığından emin olmak başarmış

Teşekkür ...

DÜZENLEME:

bir çözüm kendim buldum düşünün:

bu yöntemi kullanın% 50 alfa ile siyah bir görünüm ekleyerek loş olsun görüntü denetleyicisi. Olayları temel görünümlere geçirmek için userInteractionEnabled = NO ayarlamayı unutmayın.

- (IBAction)dim:(id)sender { 
UIView *dimView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 
dimView.backgroundColor = [UIColor blackColor]; 
dimView.alpha = 0.5f; 
dimView.userInteractionEnabled = NO; 
[self.view addSubview:dimView]; 
} 

ya, (ancak Apple sunulması üzerine reddedebilir) Bu riske olabilir:

özel API olduğunu ve olsa kullanılmamalıdır
[(id)[UIApplication sharedApplication] setBacklightLevel:1.0f]; 

...

+0

Ben bütünlük uğruna cevap olarak Düzenlemenizi gönderme öneriyoruz. –

+0

Henüz kendi sorularımı cevaplayamıyorum, bir nokta oluşturmam gerektiğini düşünüyorum ya da bir şey –

cevap

26

iOS 5'ten itibaren UIScreen sınıfında bir genel API var. Ayarlanabilen brightness özelliğine sahiptir. Gerçek arka ışığın izin verdiğinden daha kısmak isteyebileceğiniz durumlar için, donanımda yapılabilecek olandan daha fazla loş olma durumunu veren yarı saydam bir katmanı otomatik olarak yerleştiren bir wantsSoftwareDimming özelliği vardır. Bu, saydam UIView ile bulduğunuz yönteme çok benzer. Çözümünüzün veya yazılım karartma API'sinin kullanılmasının, tüm alfa harmanlama işlemiyle bir performans cezası ödeyeceğinizden pek çok animasyonla kullanılmamalıdır.

iOS 7 ve içinde

+0

Bunu yapmanın daha iyi bir yolu, teşekkürler. –

+0

@ HashemAboonajmi'nin iOS 7+ için yanıtına bakın. – ToolmakerSteve