1

我有一个 iphone sdk 方向问题...

我将“持有”视图控制器推到导航控制器上。holdingViewController 使用 viewDidLoad 来显示 navigationController 导航栏,并为其添加一个翻转按钮和一个翻转按钮的选择器。然后它使用 UIViewAnimationTransitionNone 添加一个子视图,显示一个包含 TableView 的 UIView。当点击翻转按钮时,保持视图控制器移除加载的子视图并替换为另一个子视图,也包含一个带有 tableview 的视图,并使用翻转动画进行转换。翻转和改变方向时会出现问题。虽然如果我在横向模式下翻转,翻转和旋转起初似乎都可以工作,但翻转的视图有点“裁剪”为纵向宽度,虽然实际上显示为横向,但旋转并不能修复它,你必须向后翻转,旋转回纵向,然后再次翻转。看起来holdview没有记录方向的变化,但我知道它是我已经实现的

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

在所有 3 个视图控制器上,我可以看到每个视图控制器都调用了orientationChanged 函数。

所有三个视图控制器都在 viewDidLoad 中设置自动调整大小

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

我也实施了

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

有没有人知道发生了什么,或者更重要的是,我能做些什么来解决它?

非常感谢

4

1 回答 1

3

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

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

于 2011-01-05T05:22:56.603 回答