2011-10-04 59 views
3

我一直在阅读stackOverflow这个问题的答案几个小时。请帮帮我。iphone/ipad - 麻烦使用Autoresize和addSubview

我正在使用addSubview显示视图。我所有的UIView对象都是通过xib文件加载的。层次结构是MainWindow.xib - > View1.xib - > View2.xib。每个控制器都有一个控制器,它通过initWithNibName:bundle:来加载xib。层次结构中的每个视图都具有在IB中选中的Autoresize子视图属性。每个人都有他们的自动调整选项。 (又名红色小箭头)

当点击View1上的按钮时,View2被添加为View1的子视图,使用addSubview。这在iPhone上正常工作。

我现在正在让我的应用程序工作在iPad上。我所有的其他视图都可以正常工作并调整大小。但View2不。这是因为直到它调用调整大小函数之后它才会被添加到View1中?如果是这样,我如何触发autoresize功能?我错过了什么?

对不起,如果这不够详细。我很乐意回应调试问题。经过两天的搜索,我仍然感觉有点失落。

回答

7

将View2添加到View1的代码在哪里?你可能想要做类似

-(void)actionButtonPressed:(id)sender withEvent:(UIEvent*)e { 
    self.vc2 = [[[ViewController2 alloc] initWithNibName:...] autorelease]; 
    vc2.view.frame = self.view.bounds; 
    [self.view addSubview:vc2.view]; 
} 
+0

哇。我让它变得比它需要的更加困难。出于某种原因,我认为autoResize会在addSubview函数中发生。我之前尝试过没有成功,但在添加到View1之后才调整大小。感谢您帮助我重新考虑并重新排序。 – decoy

+2

只有在视图*大小*时才会发生自动调整,并且如果视图没有窗口/超级视图/某些东西,有时似乎不会发生神秘感。谨防! –