2013-03-20 40 views
5

tôi đang tạo ra một UIView sử dụng đoạn mã sau:UIView toàn màn hình

UIview* baseView = [[UIview alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
//self.view = baseView; 
[self.view addSubview:baseView]; 
[baseView setBackgroundColor:[UIColor blackColor]]; 
baseView.userInteractionEnabled = YES; 
baseView.alpha = 0.7; 

Vấn đề duy nhất là ngay cả khi tôi đang sử dụng tùy chọn mainScreen để thiết lập nó toàn màn hình, nó xuất hiện toàn màn hình ngoại trừ một 5cm dòng ở đầu UIWindow. Có lý do cho điều này?

+0

self.view là quan điểm hiện từ giao diện người xây dựng – Alessandro

+0

Ông có thể cung cấp một màn hình? – Kunal

Trả lời

15

Được rồi, vậy lý do tại sao điều này xảy ra là vì [[UIScreen mainScreen] applicationFrame] sẽ trả về khung cửa sổ trừ đi kích thước của thanh trạng thái nếu nó hiển thị.

Để khắc phục nó một cách đơn giản sẽ là:

UIView* baseView = [[UIView alloc] initWithFrame:CGRectMake(0, 
                  0, 
                  [[UIScreen mainScreen] applicationFrame].size.width, 
                  [[UIScreen mainScreen] applicationFrame].size.height)]; 
//self.view = baseView; 
[self.view addSubview:baseView]; 
[baseView setBackgroundColor:[UIColor blackColor]]; 
baseView.userInteractionEnabled = YES; 
baseView.alpha = 0.7; 
+0

wow câu trả lời tuyệt vời, tôi thậm chí không nghĩ về điều đó. Có khoảng trống là kích thước của thanh trạng thái :) – Alessandro

+3

Tôi nghĩ bạn muốn [màn hình chính UIScreen] .bounds không phải là [Màn hình chính UIScreen] .applicationFrame –

+1

hoạt động nhưng được hiển thị bên dưới thanh tab và thanh điều hướng. –