2

我正在 iPhone 中开发一个应用程序。一种视图支持纵向和横向方向。对于两个方向,我都有两个单独的视图。此视图UIToolbar顶部有一个。

问题是当我将视图从横向更改回纵向UIToolbar时,顶部消失了。toolbar当它旋转回纵向时,我希望它回到原来的位置。

这就是我在我的程序中所做的:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)
interfaceOrientation duration:(NSTimeInterval)duration {    
    if (interfaceOrientation == UIInterfaceOrientationPortrait)
    {
        self.view = self.portrait;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(0));
        self.view.bounds = CGRectMake(0.0, 0.0, 300.0, 480.0);  
    }
    else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
    {
        self.view = self.landscape;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(-90));
        self.view.bounds = CGRectMake(0.0, 0.0, 460.0, 320.0);
    }
    else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        self.view = self.portrait;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(180));
        self.view.bounds = CGRectMake(0.0, 0.0, 300.0, 480.0);
    }
    else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        self.view = self.landscape;
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = 
        CGAffineTransformMakeRotation(degreesToRadian(90));
        self.view.bounds = CGRectMake(0.0, 0.0, 460.0, 320.0);
    }
}

我不知道我在这里错过了什么?任何帮助将非常感激。

4

3 回答 3

2

在界面生成器中,选择工具栏,点击 command-3;这会调出标尺/对齐控制菜单。

在 Autsizing 部分下,默认情况下工具栏只与左右和中心耦合。不至于TOP。选择顶部的“我”。现在工具栏相对于视图的顶部停靠,并且在旋转过程中不会被推开。

我敢肯定也有与之等效的代码

于 2010-08-10T14:07:52.100 回答
1

如果您只想使视图可旋转,就足以实现

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

在您的 viewCountroller 类中

于 2009-11-29T03:38:53.457 回答
1
self.view.bounds = CGRectMake(0.0, 0.0, 300.0, 480.0);  

这里的问题是你的高度是 480。但它应该是 460。所以你目前的高度有 20px,这可能会使顶部栏有点偏离屏幕。

于 2009-11-29T07:48:24.730 回答