2011-06-25 13 views
0

対応するUIViewControllerのないカスタムUIViewサブクラスがあります。私はこのクラスを自分のアプリのさまざまな場所で使用します。デバイスを回転させると、ビューの位置を変更する必要があります。私はこれが通常willAnimateRotationToInterfaceOrientation:duration:メソッドで行われていることを理解していますが、それはUIViewではなくUIViewControllerクラスの一部です。私の質問は、対応するUIViewControllerを実装することなく、自分の位置を変更するUIViewのための方法はありますか?回転後のUIViewの位置

答えて

1

アプリケーションは、デバイスが回転するとデバイスから通知を受け取ります。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];を使用して、これらの通知の生成を開始するようにデバイスに指示できます。

、その後、あなたは

[NSNotificationCenterデフォルト] addObserver使用して通知を登録することができます:自己セレクタ:@selector(doThisWhenRotates :)名:addObserver:セレクター:名前:オブジェクト:オブジェクト:nilを];

ただし、私はそれをお勧めしません。本当にMVCを追いたいなら、ビューのためにこのタイプのものを扱うコントローラが必要です。

しかし、必要な場合は、上記のようにすることができます。

+0

私はUIAlertViewとUIActionSheetViewは、ウィンドウに対して相対的に配置されているので、autoResizeMask設定でそれを行うと思います。私の場合は、navigationBarに相対的なものを配置する必要があり、回転すると高さが変わります。ご協力いただきありがとうございます。 – chris

関連する問題