默認(rèn)情況下 所有控制器的view的autoresizion的mask屬性都包含了UIViewAutoresizingFlexibleWidth 和 UIViewAutoresizingFlexibleHeight兩個值 也就是寬度和高度跟隨父控件拉伸
所以如果我們從xib加載一個很大的view的時候 這個時候view的尺寸就是xib里面的尺寸 所以如果我們這個時候往view里面添加另一個控制器view的時候 可能會導(dǎo)致這個添加的view 看不見 因為被拉伸的很小了 為什么拉伸很小 比如你xib創(chuàng)建的view 是 600 600 當(dāng)你在viewdidload里面添加另一個控制器的view的時候 這個時候父控制器view的尺寸是600600 但是當(dāng)父控件的view加載完成的時候 加入你是ipone6模擬器 那么尺寸會變成 375 * 667 所以里面的子控件 也會相應(yīng)的被縮小
解決方法很簡單
-
就是在添加子控制器的view 之前 先設(shè)置自控制器的view 不要跟隨父控件拉伸
可以這樣設(shè)置://定義子控制器 SYSubViewController *one = [[SYSubViewController alloc]init]; //設(shè)置尺寸 one.view.frame = CGRectMake(10,100,100,100); //設(shè)置不要跟隨父控件拉伸
one.view.autoresizingMask = UIViewAutoresizingNone;//然后添加到父控制器中 [self.view addSubview:one.view]; [self addChildViewController: one];
這樣就能解決上述問題