【问题标题】:Lock sub UIView's to the topLayoutGuide将子 UIView 锁定到 topLayoutGuide
【发布时间】:2014-06-12 15:06:40
【问题描述】:

我有一个延伸到UINavigationBar 下方的视图。此视图有一个子视图 (MrSubview),它应该位于导航栏下方。当我为UINavigationBar 设置动画时,控制器topLayoutGuide 将发生变化。在这种情况下,我希望 MrSubview 向上移动。

我的第一个想法是我需要将UIView 提供给topLayoutGuide,以便它可以在自动布局中使用它,但我想视图不应该与控制器耦合。

我正在寻找最好的方法。

UITableViewUIScrollView 是如何做到这一点的?

【问题讨论】:

    标签: ios uitableview uiscrollview uikit autolayout


    【解决方案1】:

    UIScrollViewUITableViewUIScrollView 的子类)使用contentInset 属性执行此操作。如果您的view 属性是UIScrollViewUIViewController 可以自动为您处理此问题。

    如果您的控制器的view 属性不是滚动视图,您几乎必须在viewWillLayoutSubviews 期间自己在UIViewController 中实现此功能。

    【讨论】:

    • 看来我必须切换到 UIScrollView。我可以轻松地在控制器的自动布局中使用 topLayoutGuide,但我可以在 UIScrollView 中使用它。你能想出比在 viewWillLayoutSubviews 中调整垂直空间约束更好的方法吗?我想只使用自动布局来做到这一点。
    • 我只使用自动布局,方法是保留对顶部约束的引用并在 viewWillLayoutSubviews 期间更新它们的 constant 值。
    • 但这不仅仅使用自动布局。它还需要每个使用该视图的视图控制器中的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多