2011-03-09 62 views
0

我发展我的第一个iPad应用,而应用程序是一样的邮件应用程序拆分视图。在细节视图中,我有2个子视图,一个用于编辑数据,另一个用于查看数据。当用户处于查看模式时,他们按下一个按钮,细节视图翻转显示编辑视图。嵌套的UIView更改分区大小

我似乎无法作出详细视图中的两个观点与iPad的方向变化适当调整。在纵向模式下,视图的尺寸是正确的,但是当改变为横向模式时,两个子视图会剪切到底部和右侧边缘。我认为这些视图应该用它们嵌套在视图中的视图自动调整大小。

在根视图控制器,我有以下代码:

@implementation RootViewController 

@synthesize detailViewController; 
@synthesize recipies= recipies; 
@synthesize delegate; 

#pragma mark - 
#pragma mark View lifecycle 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.clearsSelectionOnViewWillAppear = NO; 
    self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0); 
    self.detailViewController.recipeView.autoresizingMask= (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); 
    self.detailViewController.isEdit= FALSE; 
    self.detailViewController.editView.autoresizingMask= (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); 
    self.detailViewController.editView.hidden= YES; 

} 

应该调整的子视图是recipeView和EditView中。我认为通过设置autoresizeingMask,他们会自动调整大小。我在这里错过了什么,是否需要根据方向更改的可用空间明确设置每个视图的大小?

任何/所有的答复感谢!提前致谢。

回答

0

你有没有找到问题的答案。我处于与你类似或完全相同的位置。我有一个对的DetailView然后插入索引0子视图到的DetailView但大小都错了,我不明白为什么。

如果我同时添加detailview和子视图(即将detailview添加到视图的splitviewcontrollers数组),那么尺寸是正确的,但如果我简单地插入一个子视图到已经存在的detailview上,那么尺寸在肖像中工作,而不是在横向或反之亦然(即我认为autoresize不起作用)。我的解决方案是在启动要插入的视图后,检查方向并强制其大小。例如

if ((self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight)) 
     { 

      self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, 703, 724); 
     } 
     // CHECK: PORTRAIT 
     else 
     { 
      self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, 768, 980); 
     } 

我的胶料都显得具体哪些工具栏或tabbars我对的DetailView其下方就是为什么我有奇怪的大小。

在我有限的意见和iOS的SDK理解上面我的解决方案是最好的一个黑客攻击的iOS应该为我们做这一点,必须有一些我们做错了。