【问题标题】:UIScrollView disable top bounceUIScrollView 禁用顶部反弹
【发布时间】:2020-05-14 21:14:51
【问题描述】:

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

我试图在我的 ViewController 类中添加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

我需要做什么才能使其正常工作?

我的设置:

  • Swift 版本:5.1.3
  • Xcode 版本:11.3.1
  • 目标 iOS 版本:13.2
  • MacBook Pro(13 英寸,2016 年,四个 Thunderbolt 3 端口)MacOS Catalina 10.15.2 (19C57)

【问题讨论】:

  • 您是否在 viewController 中设置了 scrollview.delegate = self ?

标签: ios swift iphone uiscrollview scrollview


【解决方案1】:

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

【讨论】:

  • 我尝试添加 scrollView.delegate = self 并使我的视图控制器继承 UIScrollViewDelegate 但它不起作用
  • viewDidLoad() 函数中添加scrollView.bounces = scrollView.contentOffset.y > 100 只是禁用顶部和底部反弹。
  • imageView 一样添加滚动视图出口,并将其命名为 scrollView。然后在viewDidLoad()中添加scrollView.delegate = self,然后检查你的scrollViewDidScroll()是否被调用。
【解决方案2】:

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

yourScrollView.bounces = false

或者您也可以取消选中情节提要中的反弹!

【讨论】:

  • 这不会去除顶部和底部的反弹吗?他只想删除顶部反弹
  • 哦!好的。我误解了这个问题!那么@ValentinaKonatar 的答案是正确的只禁用顶部反弹!
【解决方案3】:

试试这个

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

【讨论】:

  • 我试过了,但从未调用过该函数。我需要做什么 ?我通过设置委托尝试了@ValentinaKonatar 的答案,但不起作用。
  • 获取 scrollview 出口并像这样添加委托 scrollView.delegate = self
【解决方案4】:

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

  • 在 viewController 中,添加 ScrollView 出口
  • viewDidLoad()函数中,添加这个myScrollView.delegate = self
  • 让你的 viewController 实现 UIScrollViewDelegate :class MyViewController: UIViewController, UIScrollViewDelegate { ...
  • 然后添加以下函数:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多