私はUIPageViewControllerを内部に簡単なUIViewControllerを持っています。UIPageViewController +自動レイアウト回転の問題
UIViewControllerにサブビューがない場合、回転したときにビューのサイズが正しく変更されます。 (緑色の背景が緑色)。
のUIViewControllerは、固定フレームとサブビューを持つ場合に回転するとき、そのビューを正しくリサイズ。 (隅に黄色の四角のある緑色の背景が緑色)。
のUIViewControllerは、そのスーパーを埋めるために設定された自動レイアウト制約を持つサブビューを持っている場合は回転させると、そのビューはもはや正しくサイズを変更しません。 (黄色の背景は、UIPageViewControllerの赤い背景が表示されています)。私が使用して自動レイアウトコードは次のとおりです。
UIView *v = [[UIView alloc] init];
[v setTranslatesAutoresizingMaskIntoConstraints:NO];
[v setBackgroundColor:[UIColor yellowColor]];
[[self view] addSubview:v];
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(v);
NSArray *cs = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[v]|" options:0 metrics:nil views:viewsDictionary];
[[self view] addConstraints:cs];
cs = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[v]|" options:0 metrics:nil views:viewsDictionary];
[[self view] addConstraints:cs];
なぜサブビューの自動レイアウトはそのスーパーに影響を与えるのでしょうか?これは、UIPageViewController内に含まれている場合にのみ発生します。
ちょっと高齢者 - 私はあなたの質問に記載された全く同じ問題を抱えています。あなたはこの答えで少しのサンプルコードを提供することができますか?私はVisual Format Language(あなたと同じように)を使って自動レイアウトですべてをやっています。回転すると、私のUIPageViewControllerがあなたの行ったことを正確に行います。あなたは「そしてそのビューに自動レイアウト制約を明示的に設定していない」と言っています。もしあなたがそのコードを提供できれば、私は非常に助けになり、より完全な答えを提供します。ありがとう! – DiscDev