2010-07-27 79 views
6

我有一个UIViewUITabController。 其中有一个UITableViewuiview的自动调整大小

在通话状态栏中切换时,它不会执行任何操作,视图也不会自动调整大小。

它根据应用程序启动时拨打电话UIStatusBar是否已切换,但在应用运行时切换UIStatusBar没有任何变化,来设定合适的大小。

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

下面是代码

 
if ([indexPath indexAtPosition:0] == 0 || [indexPath indexAtPosition:0] == 1) { 
     if (!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 open]; 
    } 

回答

13

你设置UIView正确的调整面具?您可以在大小标签中将其设置为Interface Builder,这是您可以单击的红线。

您也可以使用类似的设置它在代码:

[view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | 
          UIViewAutoresizingFlexibleHeight]; 

同时确保上海华设立autoresizesSubviews为YES。

你可以在UIView documentation找到更多关于这方面的信息。

+1

我已经完成了这些但仍然没有运气 我现在将视图添加到窗口中(通过使用推视图控制器修复了上一个示例),并且具有与前面所述相同的效果 它添加了视图在正确的地方取决于状态栏上的位置,但不会调整一旦打开 如果我在应用程序中添加子视图完成启动它工作正常 但如果我以后添加它作为用户输入的结果它不 – msaspence 2010-07-29 08:06:57

+0

老板!通过让我知道一个属性“autoresizesSubviews”来拯救我的生命!我正在面对一个以编程方式创建子视图时发生的问题,但超视图在故事板上。 “问题是这些子视图要求设置自动调整,在正确设置之后,这也让我感到非常痛苦。” +1竖起大拇指! – Prasanna 2017-05-12 07:44:07

0

虽然klaaspeiter的回答是有道理的,并在某些情况下可能是正确的答案 在我的特定情况下,它是因为我增添一分以一个UINavigationController与addSubview代替pushViewController查看:查看动画:无;

+0

虽然这是一个问题,但它不是一个解决方案,当你想使用addSubview,因为我现在做:( – msaspence 2010-07-29 08:03:44