7

我有UIView一个UITabController。而且里面有一个UITableView

在呼叫状态栏中切换时,它不执行任何操作,并且视图不会自动调整大小。

UIStatusBar它根据应用程序启动时是否切换了 in call 来假定正确的大小,但如果UIStatusBar在应用程序运行时切换了 in call,则没有任何变化。

另一个带有 a 的选项卡视图UINavigationController似乎可以很好地调整大小。

这是代码

if ([indexPath indexAtPosition:0] == 0 || [indexPath indexAtPosition:0] == 1) {
        如果(!airportChooser){
            airportChooser = [[AirportChooserController alloc] init];
            airportChooser.targetController = self;
            airportChooser.view.autoresizesSubviews = YES;  
            airportChooser.view.autoresizingMask = UIViewAutoresizingFlexibleHeight;
            [airportChooser.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth];
        }
        airportChooser.target = [indexPath indexAtPosition:0];
        [self.parentViewController.parentViewController.view addSubview:airportChooser.view];
        self.parentViewController.parentViewController.view.autoresizesSubviews = YES;
        self.parentViewController.parentViewController.view.contentMode = UIViewContentModeRedraw;
        [self.parentViewController.parentViewController.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth];
        airportChooser.view.contentMode = UIViewContentModeRedraw;
        //[airportChooser 打开];
    }
4

2 回答 2

15

您是否正确设置了调整大小的蒙版UIView?您可以Interface Builder在尺寸选项卡中设置它,它是您可以单击的红线。

您还可以使用以下代码在代码中设置它:

[view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | 
                          UIViewAutoresizingFlexibleHeight];

还要确保 superview 已设置autoresizesSubviews为 YES。

您可以在UIView 文档中找到有关此的更多信息。

于 2010-07-27T10:07:14.333 回答
0

虽然 klaaspeiter 的回答是有道理的,并且在某些情况下可能是我特定情况下的正确答案,但这是因为我使用 addSubview 而不是 pushViewController:view animated:NO; 将子视图添加到 UINavigationController 的视图中。

于 2010-07-28T09:28:47.597 回答