gpt4 book ai didi

ios - UIView bringSubviewToFront 打破了 UIScrollView 的自动布局

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:23:36 25 4
gpt4 key购买 nike

我有一个相当简单的屏幕,我在屏幕顶部插入一个自定义 UINavigationBar,并在其下方插入一个内容区域。我正在使用 AutoLayout 并且我在视觉上声明了这样的关系:

@"V:|-0-[_navBar(65)]-0-[_content]-0-|";

现在,在我尝试让另一个 View 从导航栏下方向下滑动之前,这似乎工作得很好。导航栏包含一个搜索字段,我希望搜索结果从导航栏下方向下滑动。按照目前的代码,搜索结果向下滑动到导航栏的顶部或前面,看起来很奇怪。所以我尝试使用以下方法将导航栏推到索引堆栈的顶部:

[self.view bringSubviewToFront:_navBar];

就动画而言,它完美无缺。搜索结果不再滑过导航栏,而是位于内容区域的前面。当 _content 的 child 是 UIView 时,它似乎没问题。但是,当 _content 的子项是 UIScrollView 时,这似乎在导航栏和内容区域之间引入了 20px 的边距。老实说,尽管导航栏保持相同的高度,但空间的大小似乎与状态栏非常接近。我已经尝试使用许多不同的技术将导航栏置于最前面,但是一旦导航栏和内容区域位于不同的平面上,它似乎就会打破上面定义的 0px 的自动布局约束。

Here is a sample project显示错误。看第三条,“bringSubViewToFront bug”。

有人知道这是怎么回事吗?

最佳答案

20 点空间似乎与 状态栏 有关,但我不确定为什么将 导航栏 放在前面显然会使 ScrollView 插入其内容。无论如何,在将导航栏置于最前面之后,我可以通过添加这一行来修复它,

_scrollView.contentInset = UIEdgeInsetsMake(-20, 0, 0, 0);

关于ios - UIView bringSubviewToFront 打破了 UIScrollView 的自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23373207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com