目的

iOSアプリで画面が回転された時に検知するための関数のメモ

環境

  • Xcode 11.6
  • Objective-c、swift
  • Swift5.0

iPadで検証しました。環境によってはうまく機能しない場合があります。

関数について

回転を検知したいViewControllerにて以下のfuncを貼り付けると、回転時に呼ばれます。

Objective-cの場合は以下のようにしました。

objective-cでの検知関数
    - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
    {
        [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

        [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
            //処理
            
        } completion:nil];
    }

swiftの場合は以下のようにしました。

swiftでの検知関数
    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        super.viewWillTransition(to: size, with: coordinator)
        
        coordinator.animate(alongsideTransition: { _ in
            //処理

        }, completion: nil)
    }

メモとしては以上です。