自动定位

时间:2011-09-15 11:23:33

标签: iphone cocoa-touch uiinterfaceorientation autorotate

在我的项目中,我需要实现iPhone的方向功能。为此,我创建了两个xib文件和一个UIViewController控制器文件,一个用于横向,另一个用于纵向。我有一个UIViewController,因为xib文件的内容是相同的。

现在我想根据轮换加载相应的xib文件,并且当加载特定文件时,内容应保留在TextField中。我该如何实现呢?

CODE:

if( orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight) 
{
   NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"landscapeView" owner:self options:nil]; UIView *viewItem = (UIView *)[nibArray objectAtIndex:0]; self.view = viewItem;
}
else if(orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) 
{
   //same above lines only different nib name 
}

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码

检入init设备方向的UIViewController方法
if (UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])
{
     // load view for landscape mode
}else
{
     // load view for portrait mode
}

并选择与当前方向相对应的.xib文件。

希望,这会奏效。

答案 1 :(得分:0)

这是一个非常糟糕的方法请按代码设置xib并使用

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

一个用于旋转,一个用于设置xib。

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

我希望这会对你有所帮助。