【问题标题】:Why the layout is different between storyboard and the simulator?为什么故事板和模拟器的布局不同?
【发布时间】:2015-02-22 05:39:13
【问题描述】:

如下图所示,在故事板中,我在导航栏下方放置了一个 UIScrollView(称为 A),在 A 中放置了另一个 UIScrollView(称为 B)。B 位于 A 的顶部。

但是,在模拟器中,B 和 A 的上限之间有很大的差距(我没有使用任何自动布局或编写任何代码)。谁能告诉我原因?谢谢。

【问题讨论】:

  • 尝试将storyboard中导航栏的translucent属性设置为false

标签: ios iphone xcode uiscrollview storyboard


【解决方案1】:

在您的 - (void)viewDidLoad 方法中添加以下行

self.automaticallyAdjustsScrollViewInsets = NO;

希望它能解决您的问题。

【讨论】:

    【解决方案2】:

    即使您没有使用自动布局,您也已在情节提要中选中了自动布局。因为你这样做了,UIScrollViews 和它的任何子类(UITableViewUICollectionView 等)都会在UINavigationController 中自动调整UINavigationBar 的高度。这是隐含的,没有办法将其关闭。唯一的解决方案是“偏移偏移量”或将UIScrollViewUINavigationBar 移开。

    【讨论】:

    • 谢谢。你能告诉我更多关于如何“偏移偏移量”的信息,你的意思是我应该将负 y 偏移量的 B 设置为与 A 的 y 偏移量相同吗?
    • 是的,所以在您的viewWillAppear/Did 中您可以重置位置。或者您可以使用UIScrollView 中的 contentOffset。还有其他几种方法,但这些是我见过的最常见的。
    【解决方案3】:

    较大的边距大小是导航栏高度,请尝试为您的滚动视图添加顶部自动布局。

    【讨论】:

    • 你能说的更详细一点吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 2021-03-11
    • 2016-07-20
    • 2019-10-15
    • 1970-01-01
    • 2013-01-08
    • 2018-04-25
    相关资源
    最近更新 更多