景观定位问题

时间:2012-03-31 19:55:20

标签: iphone

我的应用程序完成了98%,但偶然发现了一个让我烦恼的问题! 任何帮助都会很棒。

基本上......我有一个5个标签控制器。我已经在第一个选项卡视图上进行了一些重新构建,以便将它从纵向移动到横向移动所有内容,使其看起来很棒。 其他4个标签也可以从纵向移动到横向并轻松返回。

现在....我偶然发现的问题是,如果我说纵向标签5,将其移动到横向然后点击标签1,标签1中唯一定位到横向的位是我固定的位尺寸检查员。 我在代码中重新定位的位不会出现。

但是,如果我将该标签转为1个肖像然后再回到横向,它就可以了!

我使用.frame和CGRectMake代码移动的标签字段位于

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

方法

.......我需要在TabController所在的AppDelegate中放一些代码吗?

对我来说TabBarController知道方向是有意义的。

当你点击一个标签时.....在视图加载之前首先采取什么方法?

我想我需要抓住方向然后调整我的标签位置,然后加载视图.......

我很感激任何想法?

燃气。

编辑:如果方向在其他标签中发生变化,我想要做的就是能够更改标签1中的内容。您可以这样做吗?似乎5个标签视图是分开的......

2 个答案:

答案 0 :(得分:0)

尝试在视图控制器viewWillAppear方法中调用旋转方法,检查方向是否正确,以及移动需要移动的内容。应该看起来像这样

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self autoRotate];
}

答案 1 :(得分:0)

我认为如果你在代码中移动某些东西它会保持它的位置,所以你需要在每次在代码中移动对象的视图控制器中改变方向时改变它的位置。像:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                            duration:(NSTimeInterval)duration {
    if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation)){
         //change positions with animation using duration
    }else if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation)){
         //change positions with animation using duration
    }
} 

我希望它有所帮助。