2011-11-22 30 views
13

tôi đã quản lý để đảm bảo rằng iPhone không làm auto-lock sử dụng:Tận dụng màn hình iPhone Dim

[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ]; 

Nhưng làm thế nào để làm cho màn hình mờ sau một khoảng thời gian nhất định?

Thanks ...

EDIT:

suy nghĩ tôi đã tìm thấy một giải pháp bản thân mình:

Sử dụng phương pháp này trong điều khiển điểm của bạn để mờ bằng cách thêm một cái nhìn đen với 50% alpha. Đảm bảo đặt userInteractionEnabled = NO để truyền các sự kiện đến các khung nhìn cơ bả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]; 
} 

hay, có thể có nguy cơ nó (nhưng Apple có thể từ chối trên trình):

[(id)[UIApplication sharedApplication] setBacklightLevel:1.0f]; 

Đó là một API tư nhân và không nên được sử dụng mặc dù ...

+0

tôi khuyên bạn nên đăng chỉnh sửa của bạn như là một câu trả lời vì lợi ích của sự hoàn chỉnh. –

+0

Tôi không thể trả lời câu hỏi của riêng mình, nghĩ rằng tôi phải xây dựng điểm hoặc một cái gì đó –

Trả lời

26

Tính đến iOS 5 có một API công khai trong lớp UIScreen. Nó có một tài sản brightness có thể được thiết lập. Đối với những trường hợp mà bạn có thể muốn đi mờ hơn đèn nền thực tế cho phép, có một tài sản wantsSoftwareDimming sẽ tự động đặt một lớp mờ sẽ cho sự xuất hiện của mờ hơn có thể được thực hiện trong phần cứng. Điều này rất giống với phương pháp bạn đã đưa ra với mờ UIView. Cần lưu ý rằng việc sử dụng giải pháp của bạn hoặc API mờ phần mềm không nên được sử dụng với nhiều hoạt ảnh vì bạn sẽ trả tiền phạt hiệu suất với tất cả các pha trộn alpha.

Xem UIScreen Class Reference

+0

Đó là một cách tốt hơn để làm điều đó, cảm ơn. –

+0

Xem câu trả lời của @ HashemAboonajmi dành cho iOS 7+. – ToolmakerSteve

3

trong iOS 7 và sau đó:

yourViewController.view.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed; 
Các vấn đề liên quan