2012-11-16 30 views
8

Chế độ xem của tôi có kích thước sai. Tôi chỉ chạy Landscape nhưng chế độ xem đang báo cáo kích thước chân dung "View Width = 768.000000 Height = 1024.000000" Bất kỳ Ý tưởng nào về cách khắc phục điều đó? Tôi đã chơi xung quanh với dừng quay Tôi đã thửẢnh tự chụp của tôi có kích thước sai

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft|| interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return YES; 
} 

Có vẻ tốt trên quan điểm nhưng có kích thước đang thực sự rối tung với ứng dụng của tôi.

+0

bạn nhận được kích thước của chế độ xem như thế nào? – yuf

+0

self.view.frame.size.width. Vv .. – Jonathan

+0

và khi nào bạn đọc giá trị đó? – yuf

Trả lời

13

Bạn không bao giờ nên sử dụng frame để cho biết thứ nguyên của riêng bạn. frame liên quan đến chế độ xem vùng chứa chính. Để tìm thứ nguyên liên quan đến hệ tọa độ của chính chế độ xem của bạn, hãy sử dụng bounds: self.view.bounds

Ví dụ: chế độ xem chính có thể nhìn thấy chế độ xem con có chiều rộng = 768 và chiều cao = 1024, nhưng với phép biến đổi 90 độ xoay. Đây là cách chế độ xem cha mẹ nhìn thấy chế độ xem con, và đây là những gì self.view.frame là về. Chế độ xem con có chiều rộng = 1024 và chiều cao = 768 được phản ánh bằng cách chế độ xem tự thấy trong hệ tọa độ của chính nó, là self.view.bounds

+0

Tôi đã thử sử dụng giới hạn nhưng tôi vẫn nhận được kết quả tương tự. Tôi nghĩ rằng quan điểm có thể không biết rằng iPad là trong cảnh quan. Tôi không biết. – Jonathan

+1

thử in ra trong 'touchesBegan' và xem liệu bạn có thấy cùng một giá trị không? –

+0

Điều đó làm việc, Thats siêu lạ bạn có biết lý do tại sao nó đã làm điều đó? – Jonathan

Các vấn đề liên quan