2011-08-03 19 views
6

Tôi phải hỏi nó. Sử dụng"UIScreen màn hình chính] ứng dụngFrame]" cho chế độ Phong cảnh

[[UIScreen mainScreen] applicationFrame] 

Là cách hay để có được vùng làm việc của iPhone hoặc iPad ở chế độ dọc. Nhưng, nếu tôi muốn có cùng kích thước trong cảnh quan, có mã khác hoặc tôi sẽ phải tạo:

CGRect landscape = CGRectMake(0, 20, 1024, 748) 

Điều này thậm chí không chung cho iPhone và iPad.

+1

Tôi tự hỏi liệu có an toàn khi đoán rằng bộ chọn khung ứng dụng sẽ luôn trả về khu vực ở chế độ dọc. (Và chỉ cần chuyển đổi các giá trị theo cách thủ công.) – Rich

+0

Bạn đã giải quyết thành công điều này chưa? Việc chuyển đổi các giá trị chiều rộng và chiều cao là không mong muốn. – user216661

Trả lời

2

Bạn có thể sử dụng [[[UIApplication sharedApplication] keyWindow] frame]

+0

Khi tôi gọi điều này trong bộ chọn loadView của bộ điều khiển xem của tôi, tôi nhận được một CGRect với cả kích thước gốc và kích thước được đặt thành (0, 0). – Rich

+0

Tôi không thực sự chắc chắn nhưng nó làm việc cho tôi: 'loadView] [Line: 788] [[[UIApplication sharedApplication] keyWindow] frame]: {{0, 0}, {768, 1024}}'. Bạn có thể thử gọi '[super loadView]' trước không? Nếu điều đó không hiệu quả thì tôi khuyên bạn nên thử sử dụng phương pháp khác. 'sizeToFit' có lẽ? – Angelo