私はcontainerViewを使用しています。containerViewには多くの奇妙なことがあります。
奇妙なことの1つは、ビューのタイプが単なるUIViewであるということです。では、このビューと他のすべてのサブビューの違いは何ですか?
それから、たくさんのサンプルコードを読んだ後、セットアップを開始しました。
[self.ContainerView addSubview:self.listBusinessViewController.view];// initialize'
その時点で、self.listBusinessViewControllerはすでにselfの子です。つまり、自分には3人の子供がいます。
驚くべきことに、self.listBusinessViewController.viewのフレームサイズは、ContainerViewに自動的にサイズ変更されるのではなく、xibで設定した方法のままです。
私がこれを行う場合:
[self.ContainerView addSubview:self.listBusinessViewController.view];// initialize'
PO(NSStringFromCGRect(self.ContainerView.frame));
PO(NSStringFromCGRect(self.listBusinessViewController.view.frame));
PD(self.listBusinessViewController.view.autoresizingMask);
PD(UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);
私が得た:
NSStringFromCGRect(self.ContainerView.frame): {{0, 48}, {320, 412}}
NSStringFromCGRect(self.listBusinessViewController.view.frame): {{0, 0}, {320, 480}}
self.listBusinessViewController.view.autoresizingMask: 18
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight: 18
したがって、ContainerViewの高さは412です。listBusinessViewController.viewの高さは480です。autoresizingMaskは18です。これは、予想どおりです。それはそれが柔軟な幅、高さ、そして柔軟性のない境界線を持っていることを意味します。
では、なぜlistBusinessViewController.viewの高さがスーパービューのように412にならないのでしょうか。
もちろん、私はこれをハイハンドの方法で行うことができます
CGRect frameOfAllChild = CGRectMake(0, 0, self.ContainerView.frame.size.width, self.ContainerView.frame.size.height);
for (UIViewController * child in self.childViewControllers) {
child.view.frame=frameOfAllChild;
}
ubber allesをコーディングします(少なくともubber xib)。ただし、高さと幅を柔軟にすることの全体的なポイントは、ビューがスーパービューまたはウィンドウを埋めるようにすることです。
私は何かが足りないのですか?