社区。有一些奇怪的UIView调整大小的事情,我无法理解。UIVIew在Storyboard和NIB区别中调整大小
比方说,我们有简单的单视图应用程序与Main.storyboard。 在故事板我创建RedView
。它有默认大小600x600。所有选项都是默认设置的。我没有改变任何东西。
现在,我创建了带有BlueView
的BlueView.xib,它与RedView具有相同的大小和选项。另外,我正在创建BlueViewControler
类,并将其设置为BlueView.xib中的所有者。 BlueViewControler是空的。
RedView包括蓝景作为这样的孩子:
@implementation RedViewController
{
BlueViewController *_blueViewController;
}
- (void)viewDidLoad {
[super viewDidLoad];
_blueViewController = [[BlueViewController alloc] initWithNibName:@"BlueView" bundle:nil];
[self.view addSubview:_blueViewController.view];
}
@end
而现在,当我发起对iPhone 5的模拟器应用程序,RedView变成320 * 568,蓝角度的600 * 600
2015-08-28 13:32:17.937 TestViewSize[3087:77218] RedView frame = {{0, 0}, {320, 568}}
2015-08-28 13:32:17.938 TestViewSize[3087:77218] BlueView frame = {{0, 0}, {600, 600}}
在屏幕上,它们看起来也不一样。 所以我的问题是:
为什么RedView,在故事板创建,autoresizes?我可以理解,为什么蓝色视图是600 * 600,但为什么红色调整为屏幕大小?谁告诉它这样做?
在XIB中创建视图和故事板与调整视图有关,而不是其他任何事情。为什么故事板改变其视图,.XIB不?
我的项目创建在Xcode 6,目标是8.0,使用Autolayout
和Size Classes
被启用。
u必须重写任何的'初始化方法BlueViewController'and设置框当u用笔尖创造 – Mukesh
@muku,我知道,我该如何处理这个问题,我对**感兴趣为什么**会发生这种情况? – Akira