自动布局:顶部边缘固定到安全区域时没有反弹效果
Posted
技术标签:
【中文标题】自动布局:顶部边缘固定到安全区域时没有反弹效果【英文标题】:Autolayout: No bounce effect when top edge is pinned to Safe Area 【发布时间】:2018-06-11 20:18:44 【问题描述】:关于基于 Swift 4 的 Xcode 9.2 中奇怪的自动布局行为的快速问题。
所以我的场景是由一个 UIScrollView
在所有 4 个边上固定到 UIViewController
组成的。在UIScrollView
中有一个UIView
("Content View"),它也固定在其 Superview 的所有 4 个边上。现在的问题是,如果我在内容视图中有另一个UIView
,并且我将顶部边缘固定到安全区域而不是超级视图,滚动仍然有效,但到达顶部时没有反弹行为。它只是停在那里。
我想在页面到达顶部时实现橡皮筋效果的行为,而内部视图由于 iPhone X 缺口而被剪掉(因此限制到顶部的安全区域而不是 Superview)我做错了吗这里?看看下面的 gif。
首先:UIView
固定到内容视图的超级视图 - notice the bounce effect is active
第二个:UIView
固定到内容视图的安全区域 - there is no bounce and the scrolling stops immediately
【问题讨论】:
【参考方案1】:尝试以下方法:
UIScrollView
将 0(到安全区域)固定到所有 4 个边缘。
UIView
(“内容视图”)将所有 4 条边固定(到 Superview)并将 Equal Heights 设置为 View 并对齐中心 X。
将第二个UIView
放在第一个内部,并固定所有 4 个边(到 Superview)。注意:如果您执行了前 2 个步骤,您甚至无法选择将其固定到安全区域。
一切都按预期执行,没有剪辑,当它到达顶部时你会得到弹跳。
【讨论】:
以上是关于自动布局:顶部边缘固定到安全区域时没有反弹效果的主要内容,如果未能解决你的问题,请参考以下文章
带有自动布局的 UIScrollView:后代在查看区域之外,但视图不滚动