【问题标题】:UITableView in UITabBarController gets 10 px shift down on rotationUITabBarController 中的 UITableView 在旋转时向下移动 10 px
【发布时间】:2011-02-23 08:52:09
【问题描述】:

我在UITabBarController中有一个UITableView,当TableView的起始方向是Landscape时没有问题,但是当Starting Orientation是Portrait时,旋转后它会向下移动10 px,请看图片,

轮换前:

旋转后:

灰色的 10 像素矩形显示在 Status 和 UINavigationController 之间。

任何帮助将不胜感激。 谢谢大家。

【问题讨论】:

    标签: iphone objective-c ipad uinavigationcontroller rotation


    【解决方案1】:

    在 interface builder 中打开 XIB,单击 tableview,打开检查器,选择 View Size 选项卡(左起第三个)。在自动调整大小(不是大小和位置)下,您将看到一个白色矩形,里面有一个黑色矩形,以及一堆箭头和线条,它们会影响视图对调整超级视图大小的方式(如果我错了,请纠正我)。基本上,玩弄那些:)我可能是错的,但我认为在你的情况下,你应该选择自动调整大小的箭头(小黑色矩形内的 2)和顶部和左侧的线(外部黑色矩形)。

    【讨论】:

    • 非常感谢您的回复,但我的 XIB Autoresizing 设置已经符合您的设置。
    • 你的应用隐藏状态栏了吗?并且在顶层UIView的设置中是否启用了xib中的状态栏?
    • 不,我没有隐藏状态栏,正如你在我的屏幕截图中看到的那样,我的视图是 UITableViewController,我做了几次尝试删除状态栏或保留它并没有解决问题,我非常感谢您回复我的 cmets。
    • 截图中的工具栏是你的 UITableview 的子视图吗?这可能会导致一些奇怪的行为,也许这就是问题所在。尝试使用 UITableviewController 子类继承实现 UITableviewDelegate 和 UITableviewDatasource 的 UIViewController。在视图控制器的 xib 上,您应该有一个 UIView,它应该有 tableview 和工具栏,都是 UIView 的直接子类。并将 tableview 的委托和数据源设置为您的视图控制器。
    • 虽然在导航控制器上推送控件,但没有添加工具栏,奇怪的情况是,如果我启动我的应用程序景观,问题不会发生,只有当我启动 Portrait 时才会发生。
    【解决方案2】:

    我找到了解决方案,但这似乎与我所面临的问题无关,但我尝试了所有方法,最终成功了。

    这是我以前做的:

    之前

    我曾经通过从 XIB 上连接的 IBOutlet 加载我的 UITabController 并按如下方式加载它:

    [window addSubview:self.oTabNavigationViewController.view];
    

    现在

    我从 XIB 中删除了我的 UITabViewController 并从应用程序委托中加载它,如下所示:

    self.oTabNavigationViewController = [[TabNavigationViewController alloc] initWithNibName:@"TabNavigationViewController_ipad" bundle:nil];
    
    [self.oTabNavigationViewController.view setFrame:[[UIScreen mainScreen ]applicationFrame]];
    [window addSubview:self.oTabNavigationViewController.view];
    

    感谢大家的努力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 2013-11-04
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      相关资源
      最近更新 更多