0

UITableViewControllerから拡張された独自のクラスがあります。
この行の後、
MyClass * obj = [[MyClass alloc] init];
私は
obj.view.frame.orign.y=20を持っています

ナビゲーションコントローラーを介してこのカスタムビューをプッシュした後-viewDidAppearでy座標を確認すると、0になりました。
とても奇妙です。

なんで ?高さが20のステータスバーの下にあるカスタムテーブルビューが原因ですか?
または、他の何か。
ステータスバーが原因の場合、なぜ(0,0)にUIButtonを作成し、ステータスバーの下に作成できるのですか?

4

1 に答える 1

0

表示される動作は正常です
。-最初にビューコントローラを作成します。ビュー階層にアタッチされていません。デフォルトでは、ルートコントローラであるかのように座標を取得します。ステータスバーがあるため、y=20
です。ビューコントローラを押すと、ナビゲーションコントローラに収まるようにサイズが変更されます。フレーム座標は、親フレームに関連する座標です。つまり、y = 0はナビゲーションコントローラの上部であり、メインのy=20に相当します。窓。pushViewControllerはフレームのサイズを変更します。ドキュメントhttp://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.htmlを参照してください。

ビューは、表示される前に、ナビゲーションバーとツールバー(存在する場合)の間に収まるように自動的にサイズ変更されます。

于 2012-11-10T21:30:52.867 に答える