2012-01-20 40 views
7

Tôi đang phát triển một ứng dụng cho iOS 5, ứng dụng này phải chạy ở chế độ ngang. Vấn đề của tôi là tôi không thể bắt đầu lật nó.Buộc ứng dụng iOS khởi chạy ở chế độ ngang

Tôi đã thử thêm "định hướng giao diện ban đầu" thiết lập để "Landscape (nút bên phải nhà)" và thêm các phương pháp sau để điều khiển quan điểm của tôi:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
// Return YES for supported orientations 
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

tôi có thể quấn quanh đầu tôi nó như thế nào được cho là hoạt động. (Tôi đã tìm thấy mã here)

Tôi cũng tự hỏi cách sử dụng "Định hướng thiết bị được hỗ trợ" có sẵn trong thiết lập dự án Xcode 4.2, nó dường như không làm gì cả.

Tôi đã tìm kiếm trên trang web và không thể tìm thấy một ví dụ giải quyết được vấn đề của tôi.

Cảm ơn bạn.

+0

http://stackoverflow.com/a/17628668/468724 –

Trả lời

16

Trong tệp Info.plist của ứng dụng, thêm khóa UIInterfaceOrientation và đặt giá trị của nó thành chế độ ngang . Đối với hướng ngang , bạn có thể đặt giá trị của khóa này thành UIInterfaceOrientationLandscapeLeft hoặc UIInterfaceOrientationLandscapeRight.

Đặt chế độ xem của bạn ở chế độ ngang và đảm bảo rằng các tùy chọn tự động hóa của chúng được đặt chính xác.

Ghi đè phương thức shouldAutorotateToInterfaceOrientation: của bộ điều khiển chế độ xem và trả lại CÓ chỉ cho hướng ngang mong muốn và NO để định hướng dọc.

+0

Cảm ơn bạn. Tôi đã làm như bạn mô tả. Tôi có nhiều hơn một subview và phát hiện ra tôi đã phải ghi đè lên phương pháp trên tất cả các bộ điều khiển trước khi tôi nhận nó để làm việc. – bvd

+0

nếu trong thông tin của bạn.plist bạn đặt UIInterfaceOrientationLandscapeRight phía trên các phong cảnh khác, sau đó bạn có thể khởi động ứng dụng của bạn trên phong cảnh –

0

tôi nghĩ rằng nếu bạn ở định hướng giao diện được hỗ trợ trong plist dự án, nó sẽ hoạt động. chỉ cần thêm một dòng mới được gọi là "Định hướng giao diện được hỗ trợ" và tạo thành loại mảng và thêm 2 mục cho mỗi chế độ xem landsape mà bạn muốn. havent đã thử nghiệm điều này chỉ là một cách nhanh chóng đoán

+0

Tôi đã thử điều đó với không may mắn. – bvd

1

Khi bạn nhấp vào tên dự án của mình trong XCode và chọn mục tiêu của bạn trong TARGETS, bên dưới tab Tóm tắt, có phần trình bày trực quan về cài đặt hướng thiết bị được hỗ trợ. Đó là cách tôi quản lý để làm điều đó.

-2

Hãy thử điều này sẽ giúp bạn, viết mã này trong bạn viewdidload.

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; 
+0

UIDevice setOrientation là chỉ đọc và không thể được đặt. –

+0

Thuộc tính chỉ đọc không có setter. – SyntheticMeshwork

10

sử dụng sau trong appdelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; 

cũng thiết lập các định hướng cần thiết trong

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
// Return YES for supported orientations 
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

//Here are some iOS6 apis, used to handle orientations. 
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) 
- (NSUInteger)supportedInterfaceOrientations - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
+0

shouldAutorotateToInterfaceOrientation: không được gọi giúp tôi nó đánh giá cao –

+0

@JigPatel sử dụng một số trong những phương pháp mới trong iOS6 '- (BOOL) shouldAutorotate NS_AVAILABLE_IOS (6_0) - (NSUInteger) supportedInterfaceOrientations - (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation' – vishy

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