Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:将选项卡栏控制器移动到视图控制器的顶部_Ios_Swift_Uitabbarcontroller - Fatal编程技术网

Ios Swift:将选项卡栏控制器移动到视图控制器的顶部

Ios Swift:将选项卡栏控制器移动到视图控制器的顶部,ios,swift,uitabbarcontroller,Ios,Swift,Uitabbarcontroller,当前,我的选项卡栏控制器位于视图控制器的底部。我想知道是否有办法将其移动到视图控制器的顶部,因为我似乎找不到任何文档。您可以尝试使用UIViewController而不是UITabBarController,然后通过约束将TabBar控件放置在视图的顶部。 另一种方法是创建自己的选项卡栏。(:您不能更改uitabar上的位置。请阅读选项卡栏 如果您想在viewController顶部设置tabbar效果,则可以通过使用一个tabbar大小相同的uiview和该视图中用作选项卡的多个UIButto

当前,我的选项卡栏控制器位于视图控制器的底部。我想知道是否有办法将其移动到视图控制器的顶部,因为我似乎找不到任何文档。

您可以尝试使用
UIViewController
而不是
UITabBarController
,然后通过约束将TabBar控件放置在视图的顶部。
另一种方法是创建自己的选项卡栏。(:

您不能更改
uitabar
上的位置。请阅读选项卡栏

如果您想在viewController顶部设置tabbar效果,则可以通过使用一个tabbar大小相同的uiview和该视图中用作选项卡的多个UIButton来管理该效果。并将该视图设置在顶部或要显示tabbar的任何位置。您必须在单击按钮时管理viewController显示,并将该视图管理为每个视图控制器。所以这是一项非常困难的任务,所以最好使用系统提供的默认tabbarController。

Swift 3

let rect = self.tabBar.frame;
self.tabBar.frame  = rect.insetBy(dx: 0, dy:  -view.frame.height + self.tabBar.frame.height + (self.navigationController?.navigationBar.frame.height)!)
Swift 5 | Xcode 11 尝试在扩展UITabBarController的类中重写
viewWillLayoutSubviews()
,然后放置以下内容:-

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    self.tabBar.invalidateIntrinsicContentSize()

    var tabSize: CGFloat = 44.0;

    var orientation: UIInterfaceOrientation = UIApplication.shared.statusBarOrientation

    if (orientation.isLandscape) {
        tabSize = 32.0;
    }

    var tabFrame: CGRect = self.tabBar.frame;

    tabFrame.size.height = tabSize;

    tabFrame.origin.y = self.view.frame.origin.y;

    self.tabBar.frame = tabFrame;

    // Set the translucent property to false then back to true to
    // force the UITabBar to reblur, otherwise part of the
    // new frame will be completely transparent if we rotate
    // from a landscape orientation to a portrait orientation.

    self.tabBar.isTranslucent = false;
    self.tabBar.isTranslucent = true;
}

参考资料:

我觉得我想尝试一下,你有没有关于从哪里开始的指南或建议?这在这里解释是非常关键的。你必须管理它。第二件事你可以从界面中获取
uitabar
,并可以放在顶部,所以如果你可以使用自定义tabbar而不是tabbar控制器,那么请研究一下。我没有I don’我不想用它,现在还不知道。从哪里开始创建我自己的选项卡栏?这家伙不想换成普通的视图控制器,问题是关于选项卡栏控制器的。你不能把苹果默认的选项卡栏放在顶部。你必须为它定制一个选项卡栏。有什么指南/工具包吗?这是我的图书馆ght将帮助您实现这一看起来很有希望的目标。谢谢您。我是否要将其作为答案写下来?应用程序正在崩溃!