originalFrameというプロパティを持つUIViewのサブクラスがあります。
このクラスは、別のストーリーボードからロードされた後、元のフレーム値を格納する必要があります。
awakeFromNib メソッドをオーバーライドしました。
-(void)awakeFromNib
{
self.originalFrame = self.frame;
}
これは、それが離れているView Controllerのビューが画面サイズに合わせてサイズ変更されていない場合に機能します。
ただし、ストーリーボードのビュー コントローラーはすべて iPhone 4 インチ画面用であるため、iPhone 3.5 インチ画面でアプリを実行すると、ビュー コントローラーのビューが 3.5 インチ画面に合わせてサイズ変更される前に awakeFromNib が呼び出されます。サブビューが上部に固定されていない場合、サイズ変更後に originalFrame プロパティにフレームが反映されません。
View Controllerのビューのサイズが変更された後、layoutSubviewsをオーバーライドしてframeプロパティを取得できましたが、このメソッドは他の場合にも呼び出され、画面に合わせて最初にサイズ変更するかどうかを知る方法がありません。
ビューコントローラーのviewDidLoadメソッドで、ケースバイケースでこのプロパティを手動で設定することなく、これを行う方法はありますか?