2010-01-28 54 views
1

我有一个iPhone SDK的方向问题......iPhone SDK的子视图/上海华定位问题

我推了“持有”视图控制器到navigationController。 holdViewController使用viewDidLoad来显示navigationController导航栏,并为其添加一个翻转按钮和一个用于翻转按钮的选择器。然后使用UIViewAnimationTransitionNone添加一个子视图,显示包含TableView的UIView。当点击按钮时,持有视图控制器将删除加载的子视图,并用另一个包含带有tableview的视图的子视图进行替换,并使用翻转动画进行转换。问题出现在翻转和改变方向时。虽然翻转和旋转似乎首先如果我在横向模式下翻转时工作,翻转的视图是“剪裁”到纵向宽度,虽然实际上显示在横向,旋转然后没有修复它,你必须翻转,旋转回到肖像,然后再翻转回来。它看起来像holdingview没有注册方向的变化,但我知道这是因为我已经在所有3个视图控制器实现

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; 

,我可以看到orientationChanged函数被调用每一个。

所有这三个viewcontrollers在viewDidLoad中

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

设置自动尺寸和我也实现

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
{ 
return YES; 
} 

没有任何人有任何想法怎么回事,或者更重要的是,我能做些什么来修理它?

非常感谢

+1

您是否找到了解决方案?我正面临类似的问题 – Linus 2011-05-11 23:35:50

回答

3

我有类似的问题添加子视图。子视图正在横向裁剪。在添加子视图之前,我必须设置子视图的框架,以便子视图能够正确填充。

下面是解决我的问题的代码:[subcontroller.view setFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

+0

这是正确的答案!我有一个项目,在IB中添加一个以横向创建的视图作为另一个仅限景观的视图的子视图。它不断出现“裁剪”,但方向正确。事实上,所有的按钮和标签都处于正确的位置,只是视图背景被“裁剪”。在添加之前重新定义子视图框架是解决方案(并且相信我,我尝试了所有内容!) – mputnamtennessee 2011-10-11 14:27:18