0

私は UIViewController を持っていて、UINavigationBar をプログラム的に描画しています。どちらの回転でも機能しますが、 UINavigationBar が描画された後に回転を変更すると、消えてしまいます!

回転を変更するコードは次のとおりです。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    if (CGRectEqualToRect(navBar.frame, CGRectMake(0, 0, 768, 44))) {
        navBar.frame = CGRectMake(0, 0, 1024, 44);
    } else {
        navBar.frame = CGRectMake(0, 0, 768, 44);
    }
}
4

1 に答える 1

2

私はそれをやったことがないので、ここでテストしたことのないものを提案しています.

追加することもできますが[navBar setNeedDisplay]; 、それが最善の方法だとは思いません。UIViewController
でこのメソッドをチェックしたい

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration

そして、私が見たところから、アニメーションも取得する必要があります:

説明
このメソッドは、ビューの回転に使用されるアニメーション ブロック内から呼び出されます。このメソッドをオーバーライドして、ビューの回転中に発生する追加のアニメーションを構成するために使用できます。たとえば、コンテンツのズーム レベルを調整したり、スクローラーの位置を変更したり、ビューの他のアニメーション化可能なプロパティを変更したりするために使用できます。

于 2013-02-02T20:52:21.323 に答える