我有一个iphone sdk方向问题...
我将一个“保持”视图控制器推到navigationController上。 holdingViewController使用viewDidLoad来显示navigationController导航栏并为其添加一个翻转按钮和一个翻转按钮的选择器。然后使用UIViewAnimationTransitionNone添加一个子视图,显示包含TableView的UIView。单击翻转按钮时,保持视图控制器将删除加载的子视图,并替换另一个子视图,该子视图也包含具有tableview的视图,并使用翻转动画进行变换。翻转和改变方向时会出现问题。虽然如果我在横向模式下翻转时翻转和旋转似乎都起作用,翻转视图有点“裁剪”到纵向宽度,虽然实际上以横向显示,旋转然后没有修复它,你必须翻转,旋转回到肖像,然后再回头。看起来持有视图没有记录方向的变化,但我知道它就像我已经实现了
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
在所有3个视图控制器上,我可以看到为每个控制器调用orientationChanged函数。
所有三个viewcontrollers都在viewDidLoad
中设置自动调整大小self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
我也实施了
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES;
}
有没有人有任何想法,或者更重要的是,我能做些什么来解决它?
非常感谢答案 0 :(得分:3)
我在添加子视图时遇到了类似的问题。在横向方向上,子视图正在裁剪。我必须在添加之前设置子视图的框架,以便子视图能够正确填充。
以下是修复我的问题的代码:[subcontroller.view setFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];