【问题标题】:Swift Scroll down should make Bar Item disappearSwift 向下滚动应该使 Bar Item 消失
【发布时间】:2020-07-27 04:09:09
【问题描述】:

我希望栏按钮项在我向下滚动时消失。我的问题是我不知道如何检测滚动?我尝试了一些代码,但没有任何效果。例如:

func scrollViewDidScroll(_ scrollView: UIScrollView) { print("123") } (不行,我调用viewDidLoad()中的方法)

我也不知道我必须在哪里调用该方法。在 viewDidLoad()、viewDidAppear() 或其他地方?我是 Swift 新手,抱歉。

有人知道答案吗?

【问题讨论】:

    标签: swift xcode uiscrollview uinavigationitem


    【解决方案1】:

    问题是你从 viewDidLoad 调用它,它只在视图加载时被调用一次。你需要把这个scrollViewDidScroll 单独运行,例如在 viewDidLoad 之后,但不在其中。

    还要确保您在文件中实现了UIScrollViewDelegate。然后您可以添加scrollViewDidScroll 方法来检测视图何时滚动以及其中的print('123')

    还要确保在 viewDidLoad 中设置 scrollView.delegate = self

    【讨论】:

    • 谢谢。我添加了 UIScrollViewDelegate 并在 viewDidLoad 之后放置了 scrollViewDidScroll。但是我必须在何时何地调用该函数?当我在 scrollViewDidScroll 前面写“覆盖”时,出现错误:“方法没有覆盖其超类中的任何方法”
    • 你不应该覆盖它,它应该在你滚动时自动调用,一旦声明它会被自动调用,你不需要专门调用该函数
    • 是的,我也是这么想的,但是我不工作:我做错了什么吗?这里的代码:(第 1 行)@IBOutlet weak var scrollView: UIScrollView! (第 2 行)func scrollViewDidScroll(_ scrollView: UIScrollView) { print("123") }
    • 你在 viewDidLoad 中添加了scrollView.delegate = self 吗?
    • 不客气,很乐意为您提供帮助 :) 我编辑我的答案以提及 scrollView.delegate = self
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2018-11-08
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多