2016-04-13 17 views
5

Tôi có một bộ điều khiển xem chia và tôi trình bày một cửa sổ bật lên bên trong nó. Bây giờ khi định hướng thiết bị đang thay đổi từ cảnh quan thành dọc, tôi phải chạy một đoạn mã & nếu nó đang thay đổi từ dọc sang ngang, tôi phải chạy một đoạn mã khác. Làm thế nào để đạt được điều này trong Swift.Làm thế nào để kiểm tra thiết bị định hướng thay đổi từ chân dung để cảnh quan và phó Versa trong iPad

Trả lời

-1

Từ iOS 8.0 Bạn có thể phát hiện sự thay đổi hướng bằng cách sử dụng phương pháp dưới đây.

Trong Objective-C

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 

trong nhanh chóng

func viewWillTransitionToSize(_ size: CGSize, 
    withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) 

từ kích thước mà bạn có thể tìm hiểu.

+0

Phương thức này không được gọi. Tôi có một bộ điều khiển phân chia xem – Swayambhu

+0

** UISplitViewContoller ** cũng là một lớp con của ** UIVIewController **. Nó nên được gọi. Một điểm quan trọng hơn là kiểm tra ur gọi phương thức này với siêu hay không. ** viewWillTransitionToSize: withTransitionCoordinator: ** dường như chỉ hoạt động nếu giao diện thực sự thay đổi kích thước, có nghĩa là chúng ta đã xoay 90 độ. Nếu bạn có một mặt nạ trên bố trí của bạn mà chỉ cho phép cảnh quan, khi xoay 180 độ, kích thước giao diện không thay đổi, do đó, phương pháp này dường như không được gọi. – commando24

16

cập nhật để Swift 4: Thêm bên dưới mã trong ViewDidLoad:

NotificationCenter.default.addObserver(self, selector: #selector(orientationChanged), name: Notification.Name("UIDeviceOrientationDidChangeNotification"), object: nil) 

Sau đó, tạo một chức năng như dưới đây

@objc func orientationChanged() { 

    if(UIDeviceOrientationIsLandscape(UIDevice.current.orientation)){ 

     print("landscape") 
    } 

    if(UIDeviceOrientationIsPortrait(UIDevice.current.orientation)){ 

     print("Portrait") 
    } 

} 

Hope điều này sẽ giúp bạn :)

+0

UIDeviceOrientation! = UIInterfaceOrientation – nnrales

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