2009-12-21 39 views
14

Tôi đang cố gắng tìm ra định hướng mà iphone có trong trình mô phỏng và thay vì đưa nó cho tôi bằng cách sử dụng thuộc tính định hướng UIDevice, tôi chỉ nhận được UIDeviceOrientationUnknown.UIDeviceOrientationKhông biết ở chế độ ngang

Thuộc tính này không hoạt động trong trình mô phỏng không? Điều gì có thể là lý do có thể cho việc này?

Tôi đang sử dụng es OpenGL

+0

Đây có phải là lỗi không? –

Trả lời

12

trước hết, từ các tài liệu về orientation tài sản của UIDevice dụ

Giá trị tài sản này luôn trả về 0, trừ khi thông báo định hướng đã được kích hoạt bằng cách gọi beginGeneratingDeviceOrientationNotifications.

và có, nó sẽ chỉ hoạt động trên thiết bị thực. nhưng bạn có thể sử dụng, ví dụ: this trình mô phỏng gia tốc kế.

+0

Xin lỗi nhưng không, nó không chỉ hoạt động trên thiết bị thực. Tôi chỉ cần lập một hướng thiết bị cảnh quan trên mô phỏng và sau đó là một bức chân dung. Có lẽ nó không phải là trường hợp với các phiên bản SDK trước đây ... (Tôi đang ở trên 3.1.3) Tôi đoán chúng ta có thể sử dụng - [UIApplication statusBarOrientation] để xác định hướng giao diện hiện tại (trừ khi chúng tôi thay đổi hướng thanh trạng thái theo cách thủ công). Và tôi không chắc chắn nếu điều này sẽ làm việc với một thanh trạng thái ẩn. – Unfalkster

+0

không hoạt động trên iPad với 4.2.1 – SpaceDog

+1

Tính năng này hoạt động trên trình mô phỏng, không phải lúc nào cũng vậy. Sử dụng [[UIApplication sharedApplication] statusBarOrientation], như đã đề cập trong câu trả lời dưới đây. –

44

Bạn cũng có thể sử dụng:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 

mà làm việc ngay cả khi không gọi beginGeneratingDeviceOrientationNotifications.

+0

đẹp nó hoạt động và chỉ cần lưu cho tôi một số nhức đầu =) – Dave

+0

giải pháp tốt nhất. Tôi đã tìm thấy sự cố xảy ra trong iOS 6 và iPad mới. Mẹo của bạn đã giải quyết được vấn đề của tôi. Cảm ơn Big –

+2

Rất vui khi iOS có giải pháp thay thế này! – RyJ

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