私は非常に簡単なことをするのに苦労しています。私はviewControllerとsubViewControllerを持っています。どちらもnibsからロードされたビューを持っています。明確にするために、親ビューは1024×748のサイズであり、サブビューはニブで640×480です。 ViewControllerののviewDidLoadでUIView setCenterの問題
私はそうのようなsubViewControllerのビューを追加します。
[self.view addSubview:self.subViewController.view];
NSLog(@"subview.frame:%@",NSStringFromCGRect(self.subViewController.view.frame));
ログ出力:
subview.frame:{{0, 0}, {640, 480}}
その後、物事をテストするために、私は再配置しようとするsetCenterを使用します次のような同じ位置の親ビュー内のサブビュー:
CGPoint newCenter = CGPointMake(0,0); //should stay at the same position..
[self.subViewController.view setCenter:newCenter];
NSLog(@"after changing center.subview.frame:%@",NSStringFromCGRect(self.subViewController.view.frame));
のログ出力:
after changing center. subview.frame:{{-320, -240}, {640, 480}}
は今、私は何かがニブでめちゃくちゃになっかもしれないという気持ちを持って、それがスプリング&ストラット/サイズ&位置オプションとは何かだ推測しています。私はそれがIBだと私はほとんど理解していない機能なので、私はそれがこれだけだと推測することができます。
この問題の原因は何ですか? IBでviewcontrollerのビューを設定して他のViewControllerのビューとの位置合わせを自動的に行う方法については、一般的なヒントがありますか?そして、物事を設定した後、setCenterは動的にそれらを動かす正しい方法ですか?
[OK]を使用し、整列するために左上の角を得るために。私の誤解は、フレームの原点が左上のコーナーではなく中心と同じだと思ったということでした。愚かな間違い。 IBのビューの初期中心を設定する方法はありますか? – donalbain
申し訳ありません。評価する矢印の下にあるチェックボタンに気付かなかった神に正直です。x_O – donalbain
そこに心配はありません。 IBでは、Attributesウィンドウの3番目のタブ(ルーラー付き)に、サブビューの位置とサイズが示されます。こうすることで、プログラムやプログラムを使用しなくても、中央、辺またはコーナーを正確に揃えることができます。 – PengOne