UIScrollView 禁用顶部弹跳

UIScrollView disable top bounce

我有一个包含 UIScrollView 的 ViewController,我试图仅在视图顶部禁用弹跳效果。

我试图在我的 ViewController class 中添加 this answer,也就是说要这样做:

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    //disable bounce only at the top of the screen
    scrollView.bounces = scrollView.contentOffset.y > 100
}

但我真的不知道该怎么办。我还尝试实现 UIScrollViewDelegate。

我试过都没用。

Here is my StoryBoard and ViewController

我需要做什么才能让它发挥作用?

我的设置:

连接 scrollView 插座,然后尝试在 viewDidLoad() 函数中添加 scrollView.delegate = self 或添加 scrollView.bounces = scrollView.contentOffset.y > 100

如果你想禁用 scrollview 的反弹,那么你可以关闭你的 scrollview 并可以在 viewdidload 中将反弹 属性 设置为 false,如下所示,

yourScrollView.bounces = false

或者您也可以取消选中故事板中的反弹!

试试这个

func scrollViewDidScroll(scrollView: UIScrollView) {
      if scrollView.contentOffset.y < 0 {
          scrollView.contentOffset.y = 0
      }
  }

好的,这是我的问题的答案:

  • 在viewController中添加ScrollView outlet
  • viewDidLoad()函数中,添加这个myScrollView.delegate = self
  • 使您的 viewController 实现 UIScrollViewDelegate :class MyViewController: UIViewController, UIScrollViewDelegate { ...
  • 然后添加如下函数:

    func scrollViewDidScroll(scrollView: UIScrollView) { myScrollView.bounces = myScrollView.contentOffset.y > 100 }