XCode使用双高状态栏重绘人像布局

| 我的应用程序中有几个屏幕出现此问题,但我将解释主屏幕会发生什么情况。希望解决方案不会像我想的那样复杂。因此,我的主屏幕在顶部有一个徽标,在其下面有一个标签(标题),在其下有3个水平按钮,最后,如果设置为纵向,则分别在左下角和右下角设置和信息按钮。为了适应横向,调整遮罩大小无法达到我想要的外观,因此我实施了
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
带有if和else语句的方法,\“ if \\”使用CGRectMakes在横向布局中绘制应放置的所有元素,并且\“ else \”更改为纵向横向时将其重新绘制到其原始位置。这一切都很好。我记得我们必须能够处理双重高状态栏,因此我对其进行了仿真,以了解它会对我的应用程序产生什么影响。当我在主屏幕上并打开和关闭它时,项目的自动调整大小(设置为根据视图的顶部进行调整)可以很好地工作,方法是将所有内容稍微向下挤压一点,而不隐藏任何东西。我可以打开和关闭它没有问题。 现在这是问题所在: 当我在其他屏幕上同时打开双高状态栏时,然后返回主屏幕,不会发生调整大小的情况,它会根据我在方法中使用的坐标和大小重新绘制我的屏幕全尺寸我之前提到过,因此设置和信息按钮位于屏幕底部的一半位置。在双高状态栏已打开的情况下,在主屏幕上从横向切换回纵向时也会发生同样的情况。 同样,我在另一页上的导航栏和标签栏之间有一个映射。在页面上并进行切换后,所有内容都会很好地调整大小(地图的框架会更改高度,导航栏会向下移动)。但是同样,从另一个屏幕或横向切换到该屏幕时,我遇到了一个问题,因为没有适当地自动调整大小,而是将地图视图和导航栏部分向下推到了标签栏的后面,从而掩盖了作为商标的google商标拒绝应用。 抱歉,请耐心等待,但我想清楚地描述什么情况导致此问题。任何想法都将不胜感激,因为我真的不知道如何解决这个问题。     
已邀请:
        我一直在尝试自己解决这个问题。我认为发生这种情况是因为自动调整大小蒙版仅在调整视图大小时使用,而在将新视图添加到场景时不使用。 对我来说,我想要一个从笔尖加载的设置视图,并添加到其他所有视图之上。如果在添加视图时双高条生效,则它将超出屏幕底部。要修复它,您必须在加载视图时自行设置视图的大小和位置。这是我的“转到设置”按钮后面的代码:
- (IBAction) settingsPressed:(id)_sender
{
    NSArray* a = [[NSBundle mainBundle] loadNibNamed:@\"SettingsView\" owner:self options:nil];
    SettingsView* settings = [a objectAtIndex:0];
    settings.frame = self.view.bounds;
    [[self view] addSubview:settings];
}
重要的一行是:
settings.frame = self.view.bounds;
它将显示为“调整大小”,因此将应用大小调整掩码规则。后来我为过渡添加了动画,并且过渡效果还不错。 注意:此方法在View Controller中。     

要回复问题请先登录注册