【问题标题】:How to get the SafeAreaLayoutGuide for the ViewControllers of a UITabBarController?如何获取 UITabBarController 的 ViewControllers 的 SafeAreaLayoutGuide?
【发布时间】:2021-04-07 19:53:29
【问题描述】:

我正在尝试设置视图的Anchors,以便保持在状态栏下方,使用:

UILayoutGuide safeGuide = view.Superview.SafeAreaLayoutGuide;
view.TranslatesAutoresizingMaskIntoConstraints = false;
view.LeadingAnchor.ConstraintEqualTo(safeGuide.LeadingAnchor).Active = true;
view.TrailingAnchor.ConstraintEqualTo(safeGuide.TrailingAnchor).Active = true;
view.TopAnchor.ConstraintEqualTo(safeGuide.TopAnchor).Active = true;
view.BottomAnchor.ConstraintEqualTo(safeGuide.BottomAnchor).Active = true;

但我的视图被UITabBarController 底部的选项卡部分遮挡。

如何避免这种情况?

【问题讨论】:

  • view.Superview.SafeAreaLayoutGuide; 看起来不对...在您的代码中,view 是嵌入在 TabBarController 中的控制器的“根”视图吗?
  • @DonMag 该视图是UIViewController 的根视图,它是UITabBarControllerViewControllers 之一。
  • @DonMag 事实证明 非常 很难实现如此简单的工作,即在状态栏下方显示所述 UIViewController 的视图,但仍位于 UITabBarController 的选项卡上方。
  • 好的——你不应该使用view.TranslatesAutoresizingMaskIntoConstraints = false;事实上,你不应该这样做任何
  • @DonMag 好的。我很高兴知道如何避免这种情况。如何? (把它全部去掉,在状态栏后面显示部分视图。)

标签: c# ios swift xamarin xamarin.ios


【解决方案1】:

控制器的根视图总是被状态栏覆盖。

该视图的SafeAreaLayoutGuide 用于防止添加的子视图延伸到状态栏区域。

无论您使用UITabBarControllerUINavigationController、常规UIViewController 等,这都是正确的。

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多