Autolayout:当顶部边缘固定到安全区域时没有反弹效果

时间:2018-06-11 20:18:44

标签: swift xcode autolayout

关于Xcode 9.2中基于Swift 4构建的奇怪的自动布局行为的快速问题。

所以我的场景是由UIScrollView所有4条边上的UIViewController固定的。 UIScrollView内的UIView (“内容视图”),也会固定在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 个答案:

答案 0 :(得分:0)

尝试以下操作:

  1. UIScrollView将0(固定到安全区域)固定到所有4个边缘。
  2. UIView(“内容视图”)将所有4条边固定(到“超级视图”),并将“相等高度”设置为“视图”并对齐中心X。
  3. 将第二个UIView放在第一个{{1}}中,并将所有4条边固定(到Superview中)。注意:如果您执行了前2个步骤,那么您甚至都无法选择将其固定到安全区域。

一切都按预期执行,没有剪切,并且当到达顶部时会出现弹跳。