私はiPhone用に開発することを学んでいます(プログラム的には、IBは好きではありません)。私は物事のフレームにIBのみを使用しているので、IBで設計しますが、各コントロールのフレームをチェックするためにのみ使用します。私が非常に混乱しているのは、UIViewのフレームです。まず、loadViewを実装しない場合ビューコントローラでは、空のUIViewが自動的に作成され(黒であることに気づきました)、それをself.viewに割り当てます。フレームはどうですか?フレームがどうあるべきかを自動的に判断しますか?つまり、ステータスバーがあるかどうか、タブバー、ツールバーがあるかどうか、向きによって異なる必要があります。タブバーアプリでは、uiviewのフレームを何に設定しても、問題なく表示されます。また、UIViewのフレームがIBで混乱しているようです。ウィンドウ全体(ステータスバーを除く)を占めるUIViewのy値が0であるのと同様に、ステータスバーが上位20ピクセルを占めるため、20である必要があります。また、IBでは、タブバーコントローラーのビューのay値は411ですが、ステータスバーのすぐ下から始まります。そして、私がフレームをNSLogするときはいつでも(4つの数字、view.frame.origin.x、view.frame...など。)x、y、幅、高さは常に0です。それを理解している人が私に説明してもらえますか?ありがとう!!
わかりました、これは奇妙です...これ:
CGRect test = CGRectMake(0, 20, 320, 460);
NSLog(@"%d %d %d %d", test.origin.x, test.origin.y, CGRectGetWidth(test), CGRectGetHeight(test));
出力を与えます:
0 0 0 1077149696
??? それは何ですか?